2016-07-17 5 views
0

私は単純なユーザー入力テキストを作成しようとしていますが、問題を避けるために、テキストが入力されていなければ、送信ボタンをクリック解除できないようにします。入力中に、デフォルトではテキストが存在しないので、それはボタンが無効になりますので、これはonloadの作品メソッドはOnLoad Jqueryとしか呼ばれません

$(function() { 
    if ($("#formSearchUserId").val() == "") { 
    $('#userIdBtn').prop('disabled', true); 
    } else { 
    $('#userIdBtn').prop('disabled', false); 
    } 
}); 

:これは私がこれまで持っているものです。しかし、入力に値を入力すると、ボタンは無効のままです。

ご協力いただければ幸いです。

+3

jQueryの[ '変化()'イベントハンドラ]を見てみましょう(https://api.jquery.com/change/) – jakerella

+0

使用 'input'および/または'なぜなら、 'change'はあなたがフィールドを離れるときだけ引き起こされるからです。 – nnnnnn

答えて

0

$("#formSearchUserId").change(function(){ //code })イベントハンドラにコードをラップする必要があります。それはあなたの入力の変化を監視し、変更が発生するたびに渡される関数をトリガします。 keyup

$(document).ready(function(){ 
 
    $("#formSearchUserId").change(function() { 
 
    console.log($("#formSearchUserId").val()) 
 
    if ($("#formSearchUserId").val() == "") { 
 
    $('#userIdBtn').prop('disabled', true); 
 
    } else { 
 
    $('#userIdBtn').prop('disabled', false); 
 
    } 
 
}).change(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id=formSearchUserId name=formSearchUserId /> 
 
<button id=userIdBtn>Search</button>

+1

ハンドラをただちに呼び出すには、 '.change(function(){...})'の最後に '.change()'を連鎖する必要があります(そうしないと、ボタンはデフォルトで有効になります)。 – nnnnnn

0

$(document).ready(function(){ 
 
    if ($("#formSearchUserId").val() == "") { 
 
    $('#userIdBtn').prop('disabled', true); 
 
    } 
 
    $("#formSearchUserId").keyup(function() { 
 
    console.log($("#formSearchUserId").val()) 
 
    if ($("#formSearchUserId").val() == "") { 
 
    $('#userIdBtn').prop('disabled', true); 
 
    } else { 
 
    $('#userIdBtn').prop('disabled', false); 
 
    } 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id=formSearchUserId name=formSearchUserId /> 
 
<button id=userIdBtn>Search</button>

0

また.keyupに見ることができます。 valueの空室状況を確認してください。空白がある場合を避けるために.trimを追加することができます。

$("#formSearchUserId").on("keyup", function(){ 
 
    $('#userIdBtn').prop('disabled', !this.value.trim().length>0) 
 
}) 
 

 
$(function(){ 
 
    $("#formSearchUserId").trigger("keyup"); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<input type="text" id="formSearchUserId"/> 
 
<button id="userIdBtn">Id Btn</button>

関連する問題