2017-06-14 5 views
0

Ich versuche das Senden des Formulars zu stoppen, wenn die Namenseingabe leer ist. Mein Code funktioniert, um die Schaltfläche zum Senden zu deaktivieren, aber sobald ich erneut klicke und einen Namen einstelle, bleibt er deaktiviert. Wie kann ich das beheben?Formular nicht senden, wenn das Namensfeld leer ist

<input type="text" id="name" name="user_name"> 
<button type="submit">Register</button> 

const register = document.querySelector('button[type="submit"]'); 

function errorNameInput() { 
    let nameUser = document.getElementById('name').value; 
    if (nameUser == '') { 
     register.disabled = true; 
     console.log('please, fill in name'); 
    } else { 
     console.log('submit'); 
    } 
    document.getElementById('name').value = ''; 
} 

register.addEventListener("click", 
    function(){ 
     errorNameInput(); 
     return false; 
    }); 
+0

Warum nicht einfach das 'required' Attribut verwenden? Müssen Sie wirklich alte Browser unterstützen, die es nicht implementieren? – Barmar

+0

Hallo @Barmar, danke für deine Antwort. Ich wusste nichts über das 'require'-Attribut. Interessant. Ich werde danach forschen. Nicht sicher, was Sie meinen, wenn Sie sagen, dass sie es nicht umsetzen? –

+0

Es ist ein HTML5-Attribut. IE9 und früher implementiert es nicht. – Barmar

Antwort

0

Sie müssen den Fall hinzufügen, in dem der Benutzer etwas eingegeben hat, und die Schaltfläche erneut aktivieren.

function errorNameInput() { 
    let nameUser = document.getElementById('name').value; 
    if (nameUser == '') { 
     register.disabled = true; 
     console.log('please, fill in name'); 
    } else { 
     register.disabled = false; 
     console.log('submit'); 
    } 
    document.getElementById('name').value = ''; 
} 

register.addEventListener("click", 
    function(){ 
     errorNameInput(); 
     return false; 
    }); 
0
<input type="text" id="name" name="user_name"> 
<button type="submit">Register</button> 

const register = document.querySelector('button[type="submit"]'); 

function errorNameInput() { 
    let nameUser = document.getElementById('name').value; 
    if (nameUser == '') { 
     register.disabled = true; 
     console.log('please, fill in name'); 
    } else { 
     register.disabled = false; 
     console.log('submit'); 
    } 
    document.getElementById('name').value = ''; 
} 

register.addEventListener("click", 
    function(){ 
     errorNameInput(); 
     return false; 
    }); 
Verwandte Themen