1

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

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

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

提前致谢。

4

3 回答 3

0

您可以使用 Javascript 根据鼠标单击事件设置/切换属性checked值为"checked"(选择按钮)或""(空 stinrg = 未选择按钮)。这是关于单选按钮的参考文档

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

于 2012-08-31T09:45:41.553 回答
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>

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

于 2012-08-31T09:53:26.317 回答
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)"/>

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

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

于 2012-08-31T10:49:12.553 回答