1

jQuery の if/else ステートメントに基づいてボタンを有効または無効にできません。ここでの問題は、テキスト入力がフォーカスされると、ボタンがすぐに有効になることです。コードは if ステートメントのパラメーターを無視しているようです。明らかに、これは私が作成しようとしているアプリではありませんが、このコードを作成して、機能していないサイトの一部をテストしました。助言がありますか?

ここにHTMLがあります

<input type="text" id="type_here" />
<input type="button" id="test_button" value="test" disabled/>

ジャバスクリプトはこちら

$(document).ready(function () {
    $(document).click(function () {
        if ($('#type_here').val !== "") {
            $('#test_button').prop('disabled', false);
        } else {
            $('#test_button').prop('disabled', true);
        }
    }).keyup(function () {
        if ($('#type_here').val !== "") {
            $('#test_button').prop('disabled', false);
        } else {
            $('#test_button').prop('disabled', true);
        }
    });
});
4

2 に答える 2

3

これを試して:-

.val.valの代わりに使用している は.val() 、常に関数の結果ではなく関数参照を返します。したがって、あなたの声明は常に真実です。

   $(document).ready(function () {
    $(document).click(function () {
            $('#test_button').prop('disabled', $('#type_here').val() === "");
    }).keyup(function () {
           $('#test_button').prop('disabled', $('#type_here').val() === "");
           });
});
于 2013-05-05T17:26:51.807 に答える
0
$('#type_here').on('keyup change',function(){
  if($(this).val().length == 0)
     $('#test_button').prop('disabled', true);
  else
     $('#test_button').prop('disabled', false);
});

これは同じことをします。最初はボタンが無効になっており、何かを入力すると有効になります。

デモ

于 2013-05-05T17:27:28.583 に答える