私のサイトには時々 2 つ以上の登録フォームがあります。それらはまったく同じフィールドを持っているので、ユーザーに情報を入力し続けるように頼まなければならないのは気が狂います.
ユーザーがクリックできるようにするチェックボックスを追加しました。これにより、form1 の結果がコピーされます (良いことよりも悪いことをした clone() 関数の代わりに .val() を使用してフィールドごとに)。ページ。
フォームには、テキスト、選択ドロップダウン、およびラジオ ボタンが混在しています。テキストを取得してドロップダウンを選択して他のユーザーにコピーすることはできますが、ラジオ ボタンに対してはできないようです。
次のコードは、1 つのテキスト フィールドと 1 つの選択ボックスに対して私がどのようにそれを行っているかの例です。
$('#sameaddress').click(function () {
if ($('#sameaddress').attr('checked')) {
//Text Field
$('#commerce-checkout-form-registration .registration-form .field-name-field-student-id input').val($('#commerce-checkout-form-registration .registration-form-first .field-name-field-student-id input').val());
//Select box
var jobtype = $('#commerce-checkout-form-registration .registration-form-first .field-name-field-job-type option:selected').val();
$('#commerce-checkout-form-registration .registration-form .field-name-field-job-type option[value=' + jobtype + ']').attr('selected', 'selected');
};
});
ですから、私がこれをどのように行っているかを見ることができますが、ラジオの選択で同じことを行うための助けを探しています. 何かご意見は?私が同じ役職にとどまることができれば素晴らしいと思います。コピーするラジオの質問が約 3 ~ 4 あるので、方法があるに違いありません。
UPDATE おそらくこれをより意味のあるものにするのに役立つと思ったので、より大きなコードのチャンクを追加します(そして、はい、このコードは機能します)。繰り返しますが、通常のテキスト入力の場合とまったく同じ形式を使用してラジオ ボタンをターゲットにしようとしましたが、うまくいきませんでした。
// First we need to give the forms some classes we can actually work with.
$("#commerce-checkout-form-registration .registration_information fieldset").addClass("registration-form");
$("#commerce-checkout-form-registration .registration_information fieldset:first").removeClass("registration-form").addClass("registration-form-first");
// Now I add in the check box to use, doing this hear so I can specify that I want it to only show on the first form
$('<div><label for="sameaddress">Use Same Information on additional Registration forms (If applicable)</label><input type="checkbox" name="sameaddress" id="sameaddress" /></div>').insertAfter('.registration_information fieldset:first .field-name-field-how-did-you-hear-about-thi');
// Now lets copy everything to other forms
$('#sameaddress').click(function(){
if($('#sameaddress').attr('checked')){
$('#commerce-checkout-form-registration .registration-form .field-name-field-student-id input').val($('#commerce-checkout-form-registration .registration-form-first .field-name-field-student-id input').val());
$('#commerce-checkout-form-registration .registration-form .field-name-field-first-name input').val($('#commerce-checkout-form-registration .registration-form-first .field-name-field-first-name input').val());
// Copy each line as shown above for each of your text inputs, replacing the parent .field-name-field value for each.
// For the select boxes see below
var prefix = $('#commerce-checkout-form-registration .registration-form-first .field-name-field-prefix option:selected').val();
$('#commerce-checkout-form-registration .registration-form .field-name-field-prefix option[value=' + prefix + ']').attr('selected','selected');
var jobtype = $('#commerce-checkout-form-registration .registration-form-first .field-name-field-job-type option:selected').val();
$('#commerce-checkout-form-registration .registration-form .field-name-field-job-type option[value=' + jobtype + ']').attr('selected','selected');
} else {
//Clear on uncheck
$('#commerce-checkout-form-registration .registration-form .field-name-field-student-id input').val("");
$('#commerce-checkout-form-registration .registration-form .field-name-field-first-name input').val("");
$('#commerce-checkout-form-registration .registration-form .field-name-field-prefix option[value=Nothing]').attr('selected','selected');
$('#commerce-checkout-form-registration .registration-form .field-name-field-job-type option[value=Nothing]').attr('selected','selected');
};
});