0
<input type="text" rel="Credit card number" class="defaultColor" name="cc_num" id="txtCardNumber" runat="server" maxlength="20" onblur="cc_number_saved = this.value; this.value = this.value.replace(/[^\d]/g, '');" onfocus="if(this.value != cc_number_saved) this.value = cc_number_saved;"/>

私はクレジットカードの価値を保存し、数字以外の文字を onblur に置き換えて、再び onfocus (基本的にスペースとダッシュ) に配置しています。複数の部屋がある場合、このフィールドは複数回作成されます (つまり、ユーザーが複数の部屋を選択した場合、異なるコンテナーの各部屋のクレジット カード フィールドにデータが入力されます。

現在、他の部屋に異なるクレジット カード情報を入力すると、値が最初の部屋に置き換えられます。このクレジット カード フィールドの部屋ごとに異なるインスタンスを作成するにはどうすればよいですか。変数をグローバルスコープで宣言したため、問題が発生しています。しかし、現在のアプローチで生成された入力クレジットカードフィールドごとにプライベートにする方法がわかりません。

var cc_number_saved = "";

不明な場合はお知らせください。

4

1 に答える 1

0

jQuery を使用して、関連する入力を表す DOM 要素に値を添付します。

入力に ​​id がある場合:

<input id = 'input1' >

次に、次のように、入力に添付されたデータ フィールドに値を割り当てることができます。

$('#input1').on('blur', function(){
    $(this).data('temp', $(this).val();
}

...入力の値をどうするかに関係なく、その値を保持します。

そして、後で次のように再度取得します。

var originalVal = $('#input1').data('temp');

次に、操作された値を次のように入力に適用します。

var newVal = someFunction(originalVal);
$('#input1').val(newVal);

...または何でも。

于 2012-07-29T11:39:05.790 に答える