0

ユーザーが入力にすべての情報を入力し、チェックボックスをオンにしたときに、ボタンから無効化属性を削除するにはどうすればよいですか?

私の試み:

フルコード: http: //jsfiddle.net/7zMRM/1/

$('#id_accept').click(function(){
    if($('#id_accept:checked').length == 1 && $('#id_blz').length == 8 && $('#id_account_owner').length > 3 && $('#id_account_number').length == 22 && $('#id_bank_name').length > 3){

        $('#open').removeAttr('disabled');
        $('#open').attr('onclick','javascript:yourFunctionName();');
    }
    else{
        $('#open').removeAttr('onclick');
        $('#open').attr('disabled','disabled');

}
});
4

1 に答える 1

0

まず第一に、あなたはこれをするべきではありません:

$('#id_accept').click(function(){

だから、あなたはinputchangeイベントで行う必要があります。

$("form input").change(function(){

さらに、課題を内部にラップしておらず、$(document).ready()2つのフォームがあります。

また、次の方法でチェックボックスの値を確認する必要があります。

$('#id_accept').prop("checked");

もう1つの間違いは.length、そのように使用するべきではなく、むしろ次のようにする必要があるということです。

$('#id_blz').val().length

最終コード:

$(document).ready(function(){
$('form input').blur(function(){
    if($('#id_accept').prop("checked") && $('#id_blz').val().length == 8 && $('#id_account_owner').val().length > 3 && $('#id_account_number').val().length == 22 && $('#id_bank_name').val().length > 3){
        console.log("passed");
        alert($('#id_blz').length);
        $('#open').removeAttr('disabled');
        $('#open').attr('onclick','javascript:yourFunctionName();');
    }
    else{
        console.log("failed");
        $('#open').removeAttr('onclick');
        $('#open').attr('disabled','disabled');

}
});
});

フィドル: http: //jsfiddle.net/7zMRM/2/

于 2013-01-31T11:23:52.040 に答える