2011-11-07 14 views
1

何らかの理由で、以下のサブミットボタンを無効にした後で「再有効」にすることができません。基本的には、ユーザーが非数値を入力すると、そのボタンを無効にしてから、数値を入力した後にそのボタンを再び有効にします。私はまだ検証プロセス全体(と私はプラグインがあることを認識している)で作業していますが、まだJQueryを学んでいますが、今はボタンが現時点で有効になっていない理由を理解するための支援が必要です。ここにコードがあります。サブミットボタンを一度有効に戻すことを無効にしました

<style type="text/css"> 
.focusField{ 
    border:solid 2px red; 
    background:pink; 
    color:#000; 
} 
</style> 

<script> 

function isNumber(n) { 
    return !isNaN(parseFloat(n)) && isFinite(n); 
} 

function validateAmount(curObj) { 
    var original_val = curObj.value; 
    var current_amt = parseFloat(curObj.value); 
    $(curObj).val(current_amt.toFixed(2)); 
    if(!isNumber($(curObj).val())) 
    { 
    $(curObj).addClass("focusField"); 
    $(curObj).val(original_val); 
    $('.toggleButton').attr('disabled','disabled'); 
    } 
    else 
    { 
    $(curObj).removeClass("focusField"); 
    $('.toggleButton').removeAttr('disabled'); 
    } 
} 

$(function() { 
    $(".formatted-number-input").blur(function() { 
    validateAmount(this); 
    }) 
}); 
</script> 

<form name="invoice_form" id="invoice_form" action="index.cfm" method="post"> 
<input name="charge_amount_1" id="charge_amount_1" type="text" class="formatted-number-input" /> 
<input name="go" id="go" type="submit" value="Submit Adjustment" class="toggleButton" /> 
</form> 
+2

'.prop(、 '無効' 偽)'で '' removeAttr( '無効')を交換(古いjQueryバージョンの場合は '.attr( 'disabled'、false)')。 –

+0

Like RobWはこう言います: jQueryの旧バージョンを使用している可能性があります。jQuery v1.7のコードとして動作します。 –

+1

このjsFiddleで試してみましたが、うまくいくようです。 –

答えて

1

.prop('disabled', false)removeAttr('disabled')を交換してください。
jQueryバージョン1.6以下を使用している場合は、代わりに.attr('disabled', false),を使用してください。

リンク:(バージョン1.6以降)

関連する問題