2016-12-27 20 views
2

以下私は、ユーザが送信を許可する前に、チェックボックスと入力がすべて満たされているようにしています。チェックボックスのチェックを無視し、フィールドのみが入力された後に送信を開きます。私は間違って何をしていますか?入力とチェックボックスが空でない場合は、送信ボタンを有効にしてください

$('#first, #last, #pass').bind('keyup', function() { 
    if (allFilled()) $('#register').removeAttr('disabled'); 
}); 

function allFilled() { 
    var filled = true; 

    console.log($('#checkbox').prop('checked')) 

    $('body input').each(function() { 
     if ($(this).val() == '' && $('#checkbox').prop('checked') == false) filled = false; 
    }); 

    return filled 
}; 

HTML:jQueryの3.0のよう

<body> 
    <form> 
    Username 
    <br /> 
    <input type="text" id="first" name="first" /> 
    <br /> First 
    <br /> 
    <input type="text" id="last" name="last" /> 
    <br /> Last 
    <br /> 
    <input type="text" id="pass" name="pass" /> 
    <br /> Password 
    <br /> 
    <input type="checkbox" class="checkbox" id="checkbox" name="checkbox" /> 
    <br /> 
    <input type="submit" id="register" disabled value="Register" /> 
    </form> 
    <div id="test"> 
    </div> 
</body> 
+0

あなたのHTMLを見ることは有用であろう。 [mcve]。また、.bind()の代わりに '.on()'を使用する必要があります。 – j08691

+0

jQuery 3.0以降、.bind()は推奨されていません。 jQuery 1.7以降、イベントハンドラをドキュメントに添付するための.on()メソッドに取って代わられていたため、その使用は既に推奨されていませんでした。 –

+0

[jQueryでチェックボックスがオンになっているかどうかを確認するにはどうすればよいですか?](http://stackoverflow.com/questions/901712/how-do-i-check-if-a-checkbox-is-checked-in -jquery) –

答えて

1

、.bind()は推奨されています。 jQuery 1.7以降、イベントハンドラをドキュメントに添付するための.on()メソッドに取って代わられていたため、その使用は既に推奨されていませんでした。このことができます

$('#first, #last, #pass').on('keyup', function() { 
    if (allFilled()) $('#register').removeAttr('disabled'); 
}); 

希望:

は非推奨メソッド bind()代わりに使用 on()を使用しないでください。

$('#first, #last, #pass').on('keyup', function() { 
 
    if (allFilled()) $('#register').removeAttr('disabled'); 
 
}); 
 

 
function allFilled() { 
 
    var filled = true; 
 

 
    $('body input').each(function() { 
 
    if ($(this).val() == '' && $('#checkbox').prop('checked') == false) filled = false; 
 
    }); 
 
    return filled 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    Username 
 
    <br /> 
 
    <input type="text" id="first" name="first" /> 
 
    <br /> First 
 
    <br /> 
 
    <input type="text" id="last" name="last" /> 
 
    <br /> Last 
 
    <br /> 
 
    <input type="text" id="pass" name="pass" /> 
 
    <br /> Password 
 
    <br /> 
 
    <input type="checkbox" class="checkbox" id="checkbox" name="checkbox" /> 
 
    <br /> 
 
    <input type="submit" id="register" disabled value="Register" /> 
 
</form> 
 
<div id="test"> 
 
</div>

関連する問題