2012-03-12 18 views
5

免責事項:私は、このトピックに関してかなりの質問があり、非常に対処されていることを知っています。空のjqueryを入力した場合にサブミットを無効にする

入力値がキーアップで空であるかどうかを確認してから送信ボタンを無効にしようとしています。

私のHTMLスニペット:

<div class='form'> 
    <form> 
    <div class='field'> 
     <label for="username">Username</label> 
     <input id="username" type="text" /> 
    </div> 
    <div class='field'> 
     <label for="password">Password</label> 
     <input id="password" type="password" /> 
    </div> 
    <div class='actions'> 
     <input type="submit" value="Login" /> 
    </div> 
    </form> 
</div> 

私はいくつかの変更をhereから例の答えを使用しています

(function() { 
    $('.field input').keyup(function() { 

     var empty = false; 
     $('.field input').each(function() { 
      if ($(this).val() == '') { 
       empty = true; 
      } 
     }); 

     if (empty) { 
      $('.actions input').attr('disabled', true); 
     } else { 
      $('.actions input').attr('disabled', false); 
     } 
    }); 
})() 

任意の助けいただければ幸いです!

+1

これは別の質問のためにちょうど答えられました。参照してください:http://stackoverflow.com/questions/9671323/jquery-disable-multiple-dropdowns-not-working/9671361#9671361 –

+0

ここで問題なく動作しているようです:http://jsfiddle.net/yUQeq/ – jasonlfunk

+0

あなたは、よかった、それは働いている - 私はより大きな問題がある:( – Jonathan

答えて

15

私はデフォルトでボタンを無効にすることをお勧めします。私も.val()の長さを見て、空の文字列をチェックしません。最後に、私はdocument.ready()ははるかに読みやすい既存のコードよりもいると思う:

<div class='form'> 
    <form> 
    <div class='field'> 
     <label for="username">Username</label> 
     <input id="username" type="text" /> 
    </div> 
    <div class='field'> 
     <label for="password">Password</label> 
     <input id="password" type="password" /> 
    </div> 
    <div class='actions'> 
     <input type="submit" value="Login" disabled="disabled" /> 
    </div> 
    </form> 
</div>​ 

JS/jQueryの

$(document).ready(function() { 
    $('.field input').keyup(function() { 

     var empty = false; 
     $('.field input').each(function() { 
      if ($(this).val().length == 0) { 
       empty = true; 
      } 
     }); 

     if (empty) { 
      $('.actions input').attr('disabled', 'disabled'); 
     } else { 
      $('.actions input').removeAttr('disabled'); 
     } 
    }); 
}); 

はここa working fiddle

HTML:ここでは完全なコードです。

0

私はこれを私のプロジェクトで使っています。

$(document).ready(function() { 
    $('.field').keyup(function() { 

    var empty = false; 
    $('.field').each(function() { 
     if ($(this).val().length == 0) { 
      empty = true; 
     } 
    });     

    if (empty) { 
     $('.actions[type="submit"]').attr('disabled', 'disabled'); 
    } else { 
     $('.actions[type="submit"]').removeAttr('disabled'); 
    }     
    }); 
}); 
関連する問題