2017-09-18 13 views
0

私はa,b & cという3つの入力フィールドを作成します。 aは数値入力フィールドで、b & cは非表示の入力フィールドで、cは静的な値を持ちます。 abの入力フィールドの値は、aに1を入力したとき、bの値が10になり、b値= 20が生成されます。これはb.val() = a.val()*10です。しかし、ユーザがaに入力していないときにサブミット・ボタンを防ぎ、入力結果b.val()c.val()を越えるようにしたいと思います。私はコードを書くが、それは動作していない。私は何かをつぶしていますか?コンソールでエラーが表示されません。私をお勧めしてください:最大入力jqueryからのボタンの防止

$('#m-submit').prop('disabled',true); 
var ainput= $('#a').keyup(); 
var binput= $('#c').val() >= $('#b').val(); 
if (ainput && binput) { 
    $('#m-submit').prop('disabled', this.value == "" ? true : false); 
} 

<input type='number' name='a' id='a' /> 
<input type='hidden' value='' name='b' id='b' /> 
<input type='hidden' value='100' name='c' id='c' /> 
<button id='m-submit'>Submit</button> 
+0

'VAR ainput = $( '#のA')からkeyup();'なぜあなたは手動からkeyupイベントをトリガしていますか?このイベントをやってみようと思っていましたか?私はそれが 'ainput'に入れる値を返すことも確信していません。あなたのコードは文脈から外れているようです。誰かがこのコードをそのまま受け取りましたら、ユーザーが何かを入力する前にコードが実行中であるため、決して機能しません。私はこれが実際のコードのほんの一部であると推測します。いくつかのコンテキストは、このコードがいつ実際に実行されるかに関して有用である。 – ADyson

+0

@ADysonはい、それは私の実際のコードの小さな部分です。私の実際のコードが長すぎます – Hobo

+0

再現可能な実行可能な例を作成するために、全体を投稿する必要はありません。とにかく私はちょうど投稿された答えがおそらくそれを考え出したと思う。 – ADyson

答えて

0

あなたは数値の入力値を比較する場合にも、あなたがparseInt()を使用する必要があり、#aのからkeyupイベントを処理するための機能を添付する必要があります。このような何か:

$('#m-submit').prop('disabled',true); 
 

 
$('#a').on('keyup', function(){ 
 
    $('#b').val(parseInt($(this).val())*10); 
 
    if($(this).val() && parseInt($('#b').val()) <= parseInt($('#c').val())) 
 
    $('#m-submit').prop('disabled',false); 
 
    else 
 
    $('#m-submit').prop('disabled',true); 
 
    
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='number' name='a' id='a' /> 
 
<input type='hidden' value='' name='b' id='b' /> 
 
<input type='hidden' value='100' name='c' id='c' /> 
 
<button id='m-submit'>Submit</button>

+0

これは私のコードでこれを試していると便利です! – Hobo

+1

大変お世話になりました! – Hobo

1

は、非表示フィールドの使用が不要な間接のビットのように思えます。ここでは、をの代わりにというイベントをトリガーのように処理すると仮定して、簡単なバージョンを示します。

$('#a').on('keyup', function() { 
 
    var val = parseInt($(this).val()) * 10; 
 
    if ($(this).val() && parseInt(val) <= 100) 
 
    $('#m-submit').prop('disabled', false); 
 
    else 
 
    $('#m-submit').prop('disabled', true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='number' name='a' id='a' /> 
 
<button id='m-submit' disabled>Submit</button>

関連する問題