Empêcher l'ajout div div contentable sur entrer en utilisant pur javascript PAS jQuery

Comme cet exemple http://jsfiddle.net/uff3M/

Mais j'en ai besoin en javascript pas jQuery

J'ai résolu mon problème Merci à tous

function enterToBr(e){
    var evt = e || window.event;
    var keyCode = evt.charCode || evt.keyCode;
    if(keyCode==13){
            document.execCommand('insertHTML', false, '<br>');
            return false;
    }
}
div{
    border:1px black solid;
    padding:10px;
}
<div contenteditable="true" id="container" onkeydown="enterToBr()">
When Enter it's create new div inside container , but I need when user press enter key create new br not new div
</div>
0
Asma Alfauri 13 févr. 2020 à 14:17

3 réponses

Meilleure réponse
function enterToBr(e){
    var evt = e || window.event;
    var keyCode = evt.charCode || evt.keyCode;
    if(keyCode==13){
            document.execCommand('insertHTML', false, '<br>');
    }
}
div{
    border:1px black solid;
    padding:10px;
display: inline-block;
}
<div contenteditable="true" id="container" onkeydown="enterToBr()">
When Enter it's create new div inside container , but I need when user press enter key create new br not new div
</div>
0
Asma Alfauri 13 févr. 2020 à 12:13

On dirait que tout ce que vous avez encore à faire est d'empêcher correctement l'action par défaut de l'événement - return false seul ne fait pas cela dans cette situation.

Vous devez soit transmettre cette valeur de retour dans la chaîne à l'intérieur de l'attribut HTML utilisé pour ajouter la fonction de gestionnaire,

onkeydown="return enterToBr()"

Ou vous l'empêchez en utilisant la méthode appropriée,

    if(keyCode==13){
            document.execCommand('insertHTML', false, '<br>');
            evt.preventDefault();
    }
0
misorude 13 févr. 2020 à 11:25

Vous pouvez également le faire en CSS.

Ajoutez display: inline-block; à votre div:

div{
    display: inline-block;
}
0
ritaj 13 févr. 2020 à 11:26