2009-08-03 4 views
1

私は請求および発送情報を必要とするフォームを持っています。あなたが想像しているように、95%のケースについて繰り返し情報を持つテキストボックスを持っています。しかし、誰かが1か所で料金を請求され、その商品が他の場所に出荷されることを希望する場合は、それを考慮する必要があります。いくつかのテキストボックスから複数のテキストに簡単にjQueryを転送するには?

ユーザーエクスペリエンスを向上させたいのですが、[課金]フィールドのすべてのデータを配送先に転送するボタンがあります。 jQueryで簡単にこれを行う方法はありますか?今のところ、典型的な1対1のマッピング(つまり、shippingfirstname.text = billingfirstname.textなど)を使ってサーバー上で実行していますが、単純なjQueryでポストバックを保存できるかどうかは疑問でした。しかし、.NETがIDを改ざんする方法では、すべてのクライアントIDを設定してから転送することが多分必要であることがわかりました。何か不足していますか?

おかげ

答えて

5

これは、課金/出荷およびコピーするだけで、これらのフィールドは、「課金」を含むことを除いて正確に同じ名前を付けられたフィールドに依存します。デフォルトでチェック - - 誰かがそのチェックボックスのチェックを外し、「出荷

function copyAddress() { 
    $('input[name*=billing]').each(function() { 
     var $this = $(this); 
     var shippingName = $this.attr('name').replace(/billing/,'shipping'); 
     $('input[name$=' + shippingName + ']').val($this.val()); 
    }); 
} 
+0

甘い聖なるボール。私はあなたにキスすることができます。これは素晴らしいです、ありがとう! – Jason

+0

PS、これを私のボタンの 'click'イベントに入れました。tvanfossonの素晴らしい解決策を実装したい将来の視聴者のために – Jason

+0

tvanfossonちょうどロック!あなたはすごいよ! –

2

は、私がこれに対する最善の解決策は、その後、「請求先住所への船が」言うシンプルなチェックボックスを持っている、請求先住所をお願いすることだと思いフィールドが表示されます。サーバー側では、課金 - >出荷フィールドからその情報をコピーすることはできますが、すべてのユーザーがjavascriptを使用するわけではありません。あなたは - あなたが入力名に[と]の文字を使用している場合

// just so we are only working within the one form we want to work with: 
var $form = $('#ourform'); 

// all fields whos names begin with 'billing': 
$('input[name^=billing]', $form).each(function() { 
    var $field = $(this); 

    // replace the billing with shipping 
    var newName = $field.attr('name').replace(/^billing/, 'shipping'); 

    // look for an input named shipping instead of billing, 
    // and set its value to our value. 
    $('input[name='+newName+']', $form).val($field.val()); 
}); 

:限り別のフィールドの1セットからコピーするjQueryの方法として、あなたはの線に沿って何かを試みることができる

次のコード行でエスケープする必要があります。

関連する問題