0

ここでは、0、1、2、5 のテキスト ボックスのような 3 つの値を持つ 1 つのドロップダウンがあります。

http://jsfiddle.net/ssthil/j4JZX/3/

ドロップダウンの値をクレジット カードから購入カードに、または購入カードからクレジット カードに変更すると、入力したデータをクリアする必要があります。0 から 1 または 0 から 2 ではありません。

さらに追加:

0、1、3 の 3 つのドロップダウン値があります。さらに 5 つのテキスト ボックスがあります。デフォルトでは、ドロップ ダウン値は 0 です。そのテキスト ボックスのデータを入力し、ドロップ ダウン値 0 を 1 または 2 に変更します。今回は、これらのテキスト ボックスの値が変更されることはありません。1 から 2 または 2 から 1 のドロップダウン値を選択すると、今回のデータはクリアされます。

誰でもこれを手伝うことができますか?

4

4 に答える 4

1

以前に選択した値を保存し、現在選択されている値と比較します。トランジションがある場合、2 -> 1または1 -> 2テキストボックスをクリーンアップします。

 $(function(){
     var previousValue = $("select").val();
     $('select').change(function() {
         var currentValue = $(this).val();
         if (previousValue == 2 && currentValue == 1 
             || previousValue == 1 && currentValue == 2) {
           $("input.textbox").val("");
         }
         previousValue = currentValue;
     });
 })​

フィドル

于 2012-08-20T11:28:48.007 に答える
0

私はあなたのフィドルを更新しました:

http://jsfiddle.net/j4JZX/5/

私がしたことは、html選択変更イベントの変更時にすべてのテキストボックスをクリアすることです

ご覧ください。

于 2012-08-20T11:27:05.377 に答える
0

select支払いタイプを選択する要素がある場合は、値が変更されたときにテキスト ボックス クラスの値をリセットするだけです。コールバックを使用してfocus、以前に選択した値を保存できます。選択を開始したら、デフォルトの選択を削除することもおそらく良い考えです。支払いオプションとして-Select-を選択する必要があるのはなぜですか?

var previous;
$("select").focus(function () {
    previous = this.value; // Store the value before change.
}).change(function() {
    $("select option[value='-1']").remove(); // Remove default selection.
    if(previous != -1) { // If the last value wasn't -1 ('-Select-')
      $(".textbox").val(""); // Then clear all textboxes.
    }
});
于 2012-08-20T11:27:49.823 に答える
0

@Joao の提案に従って、変更を追跡するために最後の値を保存する必要があります。グローバル変数を持つ代わりに、最後に選択された値を格納する select 要素の属性を持つことができます。このような:

$(function(){
 $("select").attr('rel', $("select").val());

 $('select').change(function() {
     previousValue = $("select").attr('rel');

     var currentValue = $(this).val();
     if (previousValue != 0) {
       $("input.textbox").val("");
     }
     $("select").attr('rel', currentValue);
 });
})​
于 2012-08-20T11:35:02.180 に答える