【发布时间】:2011-08-13 21:47:35
【问题描述】:
这可能是一个愚蠢的简单问题,但我被卡住了。
我创建了一个带有多个复选框的表单,当单击复选框时,它会将每个复选框的值作为逗号分隔的列表传递给隐藏的输入字段。它奏效了。但由于一些问题,我现在必须更改我的代码,以便它使用单选按钮 - 所以没有逗号分隔的值列表,一次只有一个。
我更改了代码以将其换成单选按钮,它工作正常除了有两件事:1)它没有在单选按钮之间切换(每次我选择一个按钮时,它都会保持选中状态当我选择其他人时)和2)它添加到列表中,而不是返回选择的单个选项。换句话说,它仍然像一个复选框,除了在视觉上,它是圆形的并且有一个点。哈哈
这是我目前的代码:
jQuery(document).ready(function($) {
$(':radio').click(function() {
var radio = $(this);
var text = $('input[name="cat"]');
if(radio.is(':checked')) {
text.val(text.val() + radio.val());
//alert(text.val());
} else {
text.val(function() {
$(this).val().replace(radio.val(),"");
});
}
});
});
所以当我取消注释“警报”行时,我可以看到传递的内容,它只是添加到列表中而不是替换为新值。任何人都知道如何解决上述问题,因此只能选择和传递 one 选项? (虽然上面的代码真棒作为一个复选框的东西。我实际上认为我从这里的某个地方得到了上面的代码,虽然我不记得在哪里!)
编辑:这是解决问题的代码,并且很有效(谢谢大家:))-也许将来会对其他人有所帮助。
`jQuery(document).ready(function($) {
$(':radio').change(function() {
var radio = $(this);
var text = $('input[name="cat"]');
if(radio.is(':checked')) {
text.val(radio.val());
//alert(text.val());
} else {
text.val(function() {
$(this).val().replace(radio.val(),"");
});
}
});
});`
【问题讨论】:
-
单选按钮的标记是什么?
-
您是否对单选按钮进行了分组?给所有相同的名字...
-
你为什么要检查它是否被检查。收音机总是在点击时被选中。
-
我尝试了没有检查,如果它不存在,它就不能正确传递值。不知道为什么——但话说回来,我更像是一个 WordPress/PHP 人,而不是一个 jQuery 人 :)