コードのこの部分を変更する必要があります-
// Check to see if there is 250 in the url
var bal_amount = document.getElementById('balance_amount');
if (bal_amount.value > 0)
{
$("#a").show();
}
上記のコードをdocument ready
イベント内で実行しています。つまり、ページが読み込まれたときに1回だけ実行されます。
これを修正するには、このコードをイベントハンドラー内に配置する必要があります-
$(document).ready(function () {
$("#a").hide();
// See this? This is the event handler for the
// change event which will fire whenever the value
// of the text box changes.
$('#balance_amount').change(function () {
// Check to see if there is 250 in the url
if ($(this).val() > 0) {
$("#a").show();
}
});
});
このように、balance_amount
フィールドの値が変更されるたびに、このイベントがトリガーされ、の残高が検証されます。
ここでは、実用的なデモを見つけることができます。
テキストボックスに無効な入力がないかチェックすることで、コードをさらに改善できます-
$(document).ready(function () {
$("#a").hide();
// See this? This is the event handler for the
// change event which will fire whenever the value
// of the text box changes.
$('#balance_amount').change(function () {
var balance = parseInt($(this).val(), 10);
if (isNaN(balance)) {
alert('You have entered an invalid value');
return false;
}
if (balance > 0){
$("#a").show();
}
// There you go, an else block for you
else {
$("#a").hide();
}
});
});