是否可以在JSP中取消选择单选按钮(如复选框)

时间:2012-08-31 09:38:12

标签: javascript jsp

是否可以在JSP中取消选择单选按钮(如复选框)?

我有一个带有单选按钮的表格的页面。如果我在选定的收音机上单击它,我想取消选择单选按钮。这是代码

<tr>                    
<TD><INPUT type="radio" name="Radios" value="someValue"></td>
<TD>someValue</td>
</tr>

提前致谢。

3 个答案:

答案 0 :(得分:0)

您可以使用Javascript设置/切换值为checked的属性"checked"(按钮被选中)或基于鼠标的""(空stinrg =按钮未被选中)点击活动。这是reference doc about radio buttons

请记住,一次只能选择一个组中的一个单选按钮。

答案 1 :(得分:0)

试试这个javascript代码:

var firstClick = true;
function tick(element){
 if(!firstClick){
     if(element.checked){
         element.checked = false;
         firstClick = true;
     }
 }else{
     firstClick = false;
 }

}

然后添加onclick属性

<tr>                    
<TD><INPUT type="radio" name="Radios" value="someValue" onclick="tick(this);"></td>
<TD>someValue</td>
</tr>

注意:未经测试。但这应该有用。

答案 2 :(得分:0)

问题是在onclick处理程序运行之前点击后立即检查未选中的按钮。因此,即使在用户单击按钮之前未选中该按钮,也会在启动处理程序时检查该按钮。所以下面的代码不起作用。

function toggle(e)
{
    e.checked = !e.checked;
}

所以有一个技巧可以避免这个问题。我们只需添加一个字段来计算点击次数。

function toggleRadioButton(e)
{
    if(e.parity==undefined)
    {
        e.parity = false;
    }
    e.parity = !e.parity;
    e.checked = e.parity;

    //Fix parity of other buttons of this group which are unchecked automatically
    if(e.checked)
    {
        var buttonsInGroup = document.getElementsByName(e.name);
        for(var i=0; i<buttonsInGroup.length; i++)
        {
            if(buttonsInGroup[i]!=e)
            {
                buttonsInGroup[i].parity = false;
            }
        }
    }
}

HTML部分将具有标准的onclick处理程序:

<INPUT type="radio" name="Radios" value="someValue" onclick="toggleRadioButton(this)"/>

但是,以编程方式更改按钮状态时可能存在一些完整性问题。我真的不喜欢这段代码,但没有看到任何其他解决方案。

最后我的建议是不要以这种奇怪的方式使用单选按钮:)。