2014-09-19 99 views
0

我正在尝试这样做。当我选择单选按钮,然后选择所有单选按钮。我只想要选择一个单选按钮

我有三个单选按钮,它工作正常,当我使用单个div中的所有单选按钮,但它不工作时,我将所有单选按钮划分在特定的div。我点击它然后它被选中,但下一次,当我点击它,然后仍单选按钮被选中。 当我点击它时应该取消选择。

请帮忙。您的帮助将不胜感激。非常感谢。
这是我的代码到目前为止。

<html> 
<head> 
</head> 
<body> 
<div class="filter_subdivisions"> 
<div class="popular_city radio mgnb6 clearfix"> 
<span class="fltl" style="width:70%;padding-top: 6px;">Delhi Airport</span> 
<span class="fltr"> 
<label class="label_radio" for="radio-01"><input name="sample-radio" id="radio-01" value="1" type="radio" checked />&nbsp;</label> 
</span> 
</div> 
<div class="popular_city radio mgnb6 clearfix"> 
<span class="fltl" style="width:70%;padding-top: 6px;">Delhi Airport</span> 
<span class="fltr"> 
<label class="label_radio" for="radio-02"><input name="sample-radio" id="radio-02" value="1" type="radio" />&nbsp;</label> 
</span> 
</div> 
</div> 
</body> 
</html> 

<script> 
var d = document; 
var safari = (navigator.userAgent.toLowerCase().indexOf('safari') != -1) ? true : false; 
var gebtn = function(parEl,child) { return parEl.getElementsByTagName(child); }; 
onload = function() { 
var body = gebtn(d,'body')[0]; 
body.className = body.className && body.className != '' ? body.className + ' has-js' : 'has-js'; 

if (!d.getElementById || !d.createTextNode) return; 
var ls = gebtn(d,'label'); 
for (var i = 0; i < ls.length; i++) { 
var l = ls[i]; 
if (l.className.indexOf('label_') == -1) continue; 
var inp = gebtn(l,'input')[0]; 
if (l.className == 'label_radio') { 
l.className = (safari && inp.checked == true || inp.checked) ? 'label_radio r_on' : 'label_radio r_off'; 
l.onclick = turn_radio; 
}; 
}; 
}; 
var turn_radio = function() { 
var inp = gebtn(this,'input')[0]; 
if (this.className == 'label_radio r_off' || inp.checked) { 
var ls = gebtn(this.parentNode,'label'); 
for (var i = 0; i < ls.length; i++) { 
var l = ls[i]; 
if (l.className.indexOf('label_radio') == -1) continue; 
l.className = 'label_radio r_off'; 
}; 
this.className = 'label_radio r_on'; 
if (safari) inp.click(); 
} else { 
this.className = 'label_radio r_off'; 
if (safari) inp.click(); 
}; 
}; 
</script> 
+0

变化的第二值一,值= 2,看看是否有帮助 – Gho 2014-09-19 07:55:37

+0

你一定要改善这个问题:你的问题是什么?我在Chrome上测试了你的代码,它的工作原理是:两个不同div的单选按钮,但名称相同,彼此交替。 你想达到什么目的? – MrAsterisco 2014-09-19 07:55:48

+0

你知道单选按钮的工作原理吗?任何一个单选按钮将在同一时间被选中。如果希望切换功能,可以使用复选框。所以,首先要纠正/编辑你的问题。 – bharatpatel 2014-09-19 08:02:40

回答

0

你必须具有相同的容器内type="radio"按钮以使它们表现得像单选按钮,等作为每W3Schools的示例

<form> 
<input type="radio" name="sex" value="male">Male<br> 
<input type="radio" name="sex" value="female">Female 
</form> 
+0

这是不正确的。请参阅上面的评论:它在Chrome中完美运行。 – MrAsterisco 2014-09-19 07:56:29