我试图通过让用户单击文本而不是单选按钮来创建单选按钮的替代方案。我有这个工作,但我的问题是通过 GET 方法传递的数据不正确。当我将输入类型设置为无线电时,数据被正确传递(第二张图像)但是当我将输入类型设置为隐藏时,GET 参数都被发送(第一张图像)。
例如,在下图中,输入类型设置为隐藏,如果您查看 url,它正在发送不需要的参数
这就是我要的。url 仅包含我需要的参数,但输入类型设置为单选,我希望它们隐藏
HTML:
class="span-background" 只是设置颜色背景
<div id="browse-settings">
Browse For:
<span name="GN" value=0 class="span-background" >Female</span>
<span name="GN" value=1>Male</span>
<br>
Orientation:
<span name="OR" value=0 class="span-background">Straight</span>
<span name="OR" value=1>Gay</span>
<span name="OR" value=2>Bi</span>
<span name="OR" value=3>All</span>
<form action="" method="GET">
<input type="hidden" name="GN" value=0 checked>
<input type="hidden" name="GN" value=1>
<input type="hidden" name="OR" value=0 checked>
<input type="hidden" name="OR" value=1>
<input type="hidden" name="OR" value=2>
<input type="hidden" name="OR" value=3>
<input name="search" type="submit" value="Search" />
</form>
</div>
jQuery:
$( document ).ready(function() {
$("#browse-settings span").click(function() {
$name = $(this).attr('name');
$value = $(this).attr('value');
$('span[name='+$name+']').removeClass('span-background');
$(this).addClass('span-background');
$('input[name='+$name+']').removeAttr('checked');
$('input[name="'+$name+'"][value="'+$value+'"]').attr('checked',true);
});
});
我究竟做错了什么?