2017-06-14 10 views
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 { 
     console.log('submit'); 
    } 
    document.getElementById('name').value = ''; 
} 

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

理由だけではなく、 'required'属性を使用していませんか?あなたは本当にそれを実装していない古代のブラウザをサポートする必要がありますか? – Barmar

+0

こんにちは@バーマ、あなたの答えをありがとう。私は '必須'属性について知らなかった。面白い。私はそれについて研究します。彼らはそれを実装していないと言って何を意味するか分からない? –

+0

これはHTML5属性です。 IE9以前はそれを実装していません。 – Barmar

答えて

0

ユーザーが何かを入力した場合を追加して、ボタンを再度有効にする必要があります。

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; 
    }); 
関連する問題