是否可以在 JSP 中取消选择单选按钮(如复选框)?
我有一个带有单选按钮的表格的页面。如果我在选定的收音机上单击它,我想取消选择单选按钮。这是代码
<tr>
<TD><INPUT type="radio" name="Radios" value="someValue"></td>
<TD>someValue</td>
</tr>
提前致谢。
是否可以在 JSP 中取消选择单选按钮(如复选框)?
我有一个带有单选按钮的表格的页面。如果我在选定的收音机上单击它,我想取消选择单选按钮。这是代码
<tr>
<TD><INPUT type="radio" name="Radios" value="someValue"></td>
<TD>someValue</td>
</tr>
提前致谢。
您可以使用 Javascript 根据鼠标单击事件设置/切换属性checked
值为"checked"
(选择按钮)或""
(空 stinrg = 未选择按钮)。这是关于单选按钮的参考文档。
请记住,一次只能选择组中的一个单选按钮。
试试这个 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>
注意:这未经测试。但这应该有效。
问题是未选中的按钮在单击后立即在 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)"/>
但是,以编程方式更改按钮的状态时可能会出现一些完整性问题。我真的不喜欢这段代码,但没有看到任何其他解决方案。
最后我的建议是不要以这种奇怪的方式使用单选按钮:)。