日期:2014-05-16  浏览次数:20397 次

请教一个js操作radio按钮的问题!当达到某个值的时候,就不允许再选择“同意”了
本帖最后由 CrazyNotes 于 2012-12-05 11:09:57 编辑
如题,最近做个表决投票的应用,假设总共有10条记录,只允许投4票,当评委投票超过4票,就不允许在选择“同意”了,也就是页面中的radio的“同意”项目不能超过4项,这个怎么实现。

用遍历的方法倒是可以提醒评委已经超过4票了,但是不能避免他点击“同意”radio啊,我点击事件是触发了一个ajax的,有方法能让评委不能点击吗?

以下是应用的截图,看着可能更直观一点

------解决方案--------------------
你设置一个全局变量a用于当前剩余的可以投票数,
然后你的radio监听点击事件,监听click事件,当你的a = 0 的时候你就 disabled所有的没选择的radio,当你的a >0 时就enabled所有的
------解决方案--------------------
简单写了下测试例子,你自己做相应的业务调整吧


var totalnumber = 1
        function doclick(el) {
            el.checked == true ? totalnumber-- : 1;
            if (totalnumber == 0) {
                //disabled 你想要的disabled
                //el.disabled = true;
            }
        }

<input type="radio" name="adf" onclick="doclick(this)" />

------解决方案--------------------
超过可用得票数再点击同意设置同意对象.checked=false就行了
------解决方案--------------------

function vote(obj) {
var count = 0;
var inputs = document.getElementsByTagName("input");
for(var i=0; i<inputs.length; i++) {
if(inputs[i].type == "radio" && inputs[i].value == "1" && inputs[i].checked) count += 1;
}

if(count > 4) {
document.getElementsByName(obj.name)[1].checked = true;
}
}


<input type="radio" name="t1" onclick="vote(this);" value="1" /> 同意
<input type="radio" name="t1" value="2" /> 不同意<br />

<input type="radio" name="t2" onclick="vote(this);" value="1" /> 同意
<input type="radio" name="t2" value="2" /> 不同意<br />

<input type="radio" name="t3" onclick="vote(this);" value="1" /> 同意
<input type="radio" name="t3" value="2" /> 不同意<br />

<input type="radio" name="t4" onclick="vote(this);" value="1" /> 同意
<input type="radio" name="t4" value="2" /> 不同意<br />

<input type="radio" name="t5" onclick="vote(this);" value="1" /> 同意
<input type="radio" name="t5" value="2" /> 不同意<br />


------解决方案--------------------
<div id="tt">还可以投4票</div>
<input type="radio" name="t1" value="1" /> 同意
<input type="radio" name="t1" value="2" /> 不同意<br />

<input type="radio" name="t2" value="1" /> 同意