0

次のフォームがあります。フォームを送信する前に、ユーザーが少なくとも2文字を入力していることを確認したいと思います。だから私は送信ボタンを無効にします:

<form action="/search" method="post" id="search_form" name="searchform">
<input id="search_box" type="text" class="inp" placeholder="Search" />
<input type="submit" id="search_button" disabled class="btn" value="Search">
</form>

次のJqueryを使用してキー押下をキャプチャしようとしていますが、発生していません。

$("#search_box").keypress(function() {
if($(this).length > 1) {
     $('#search_button').removeAttr('disabled');
}
});

表示するフィドルを設定しました:http://jsfiddle.net/HZvSF/3/

4

2 に答える 2

2

テキストボックスを取得する必要がval()あります。

$("#search_box").keypress(function() {
if($(this).val().length > 1) {
     $('#search_button').removeAttr('disabled');
}
});

編集

ライブラリがフィドルのMooToolsであるのを見たところ、ここで機能しています:http: //jsfiddle.net/HZvSF/17/

于 2012-08-18T10:00:27.253 に答える
0

バインディングの問題だと思います。匿名関数内の「this」は、je JQueryオブジェクトではなく、ウィンドウを参照していると思います。

$("#search_box").keypress(function(event) {
if($(event.target).val().length > 1) {
     $('#search_button').removeAttr('disabled');
}
});
于 2012-08-18T10:02:05.037 に答える