我的网站上有时会有2个以上的注册表格。它们具有完全相同的字段,因此不得不要求用户继续输入其信息而变得疯狂。
我添加了一个允许用户点击的复选框,它将复制他们的form1结果(使用.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个无线电问题要复制,必须有办法。
更新 添加更大块的代码,因为我认为它可能有助于使这更有意义(并且是的,这个代码确实有效)。同样,我尝试使用与常规文本输入相同的格式来定位单选按钮,但这不起作用。
// 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');
};
});
答案 0 :(得分:0)
呃我继续前进,只是更改了单选按钮以选择列表而不是问题。
答案 1 :(得分:0)
这是一个老问题,但也许有人需要解决方案,就像我一样。
让我们说你有这个:
<input type="radio" name="myRadioButton" value="a" />Option One<br />
<input type="radio" name="myRadioButton" value="b" />Option Two<br />
<input type="radio" name="myRadioButton" value="c" />Option Three<br />
要从单选按钮获取所选值,请使用:
$('input[name="myRadioButton"]:checked').val();
例如,要设置第二个值,请使用:
$('input[name="myRadioButton"][value="b"]').prop('checked', true);
如果您有两个单选按钮,其值彼此完全相同,请执行以下操作:
<input type="radio" name="firstRadio" value="a" />Option One<br />
<input type="radio" name="firstRadio" value="b" />Option Two<br />
<input type="radio" name="firstRadio" value="c" />Option Three<br />
<input type="radio" name="secondRadio" value="a" />Option One<br />
<input type="radio" name="secondRadio" value="b" />Option Two<br />
<input type="radio" name="secondRadio" value="c" />Option Three<br />
您只需使用以下内容加入这两个函数:
$('input[name="firstRadio"][value="'+$('input[name="secondRadio"]:checked').val()+'"]')
.prop('checked', true);
这会将所选选项从secondRadio复制到firstRadio。