我的网站上有时有 2 个以上的注册表单。它们具有完全相同的字段,因此不得不要求用户继续输入他们的信息会变得很疯狂。
我添加了一个复选框,允许用户单击它,它将复制他们的 form1 结果(逐个字段使用 .val() 而不是 clone() 函数,它弊大于利),以及出现在页。
我在表单中混合了文本、选择下拉菜单和单选按钮。我可以获取文本并选择下拉菜单以复制到其他人,但我似乎无法为单选按钮执行此操作。
以下代码是我如何为 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 个无线电问题要复制,而且必须有办法。
更新 添加更大的代码块,因为我认为它可能有助于使这更有意义(是的,这段代码确实有效)。同样,我尝试使用与常规文本输入相同的格式来定位单选按钮,但这不起作用。
// 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');
};
});