2011-08-07 15 views
0

私はフォームフィールドを使用して特定の状況の統計情報を取得しています。 2つのテキストフィールドの入力に基づいて変更するには、非表示フィールドの値が必要です。その機能を簡単な英語で説明します。これを機能しているjQueryスクリプトに翻訳すると大いに感謝します。jQuery - 入力フィールドに基づいて隠し値を変更

隠しフィールドは、等しいFIELD_1の値が等しい「YES」4 & & field_2 2 又は 隠しフィールドに等しいFIELD_1の値が等しい「YES」3 & & field_2 1つの 又は 隠しフィールドに等しい 'は等しく、等しいですyes 'フィールドの値が2の場合 else 非表示フィールドは' no 'と等しくなります

この文の構造に示されているように、私はまずPHP開発者です。これはjQueryを使って行うことができるという私の前提です。そうでない場合は、私に代替手段を提供してください。ありがとう!

+0

私はあなたがおそらくJavaScriptでさえ、文字列比較は動作するはずJavaScriptでint型の入力、私はすぐにそうアップ型付けされたの下に私の解決策が正確ではないかもしれないいずれかの方法を変換するのparseIntを使用していない何らかの理由で容疑者。 – Ali

+0

Aliによってポストされたメソッドは、初期値を認識しています(両方が空であるためnoを返します)。ただし、field1およびfield2の値が変更されたときは更新されません。 –

答えて

1

これが役に立ちます。 jQuery apiをチェック包み、あなたのフィールドは、いくつかの方法(のような彼らは、チェックボックスの場合)異なっている

var field1 = parseInt($('#field_1').val()); 
var field2 = parseInt($('#field_2').val()); 

if((field1 == 4 && field2 == 2) || (field1 == 3 && field2 == 1) || field1 == 2){ 
    $('#hidden').val('yes') 
} else { 
    $('#hidden').val('no') 
} 
+0

フィールド1とフィールド2(null)の初期値はスクリプトによって認識され、hiddenの値はnoに設定されています。ただし、field1とfield2の値を変更すると、hiddenの値は再計算されません。 –

+0

初期値がnullの場合、parseIntの前に値がnullかどうかをチェックし、デフォルト値に設定します。はい、このコードは値の変更を考慮していません。あなたはfield_1とfield_2のonBlurをonKeyUpにバインドする必要があります。そのためには$( '#fieldId')が必要です。bind( 'blur'、function(){/ *上記のコードは* /});両方のフィールドでこれを行う必要があります。 – Ali

+0

完璧に動作します!ありがとうアリ! –

0

FIELD_1とfield_2の入力値に基づいて、隠された入力値を変更することからkeyupイベントハンドラを使用して、以下の(彼らは仮定テキスト入力)。

$('#field1 #field2').keyup(function() { 
    var field_1 = parseInt($('#field_1').val()); 
    var field_2 = parseInt($('#field_2').val()); 

    if (field_1 == 4 && field_2 == 2) { 
     $('#hidden').val('yes'); 
    } 
    else if (field_1 == 3 && field_2 == 1) { 
     $('#hidden').val('yes'); 
    } 
    else if (field_1 == 2) { 
     $('#hidden').val('yes'); 
    } 
    else { 
     $('#hidden').val('no'); 
    } 
}); 
関連する問題