防止多次单击选中的单选框
preventing multiple clicks on a checked radiobox
我有一个表单,用户可以在其中给出从 1 到 5 的评级,这是通过无线电框完成的。但是如果不进行检查,用户可以多次单击同一按钮,如何防止这种情况?
代码只是简单地编写的
echo "<input type='hidden' name='risk' />
<td>1<input type='radio' name='question[]' id=1 value=1 onclick='calculate_score(".$number.",this.value)'/></td>
<td>2<input type='radio' name='question[]' id=2 value=2 onclick='calculate_score(".$number.",this.value)'/></td>
<td>3<input type='radio' name='question[]' id=3 value=3 onclick='calculate_score(".$number.",this.value)'/></td>
<td>4<input type='radio' name='question[]' id=4 value=4 onclick='calculate_score(".$number.",this.value)'/></td>
<td>5<input type='radio' name='question[]' id=5 value=5 onclick='calculate_score(".$number.",this.value)'/></td>
</table></form>";
谁能告诉我如何处理这个问题?请注意,上面的代码只是从代码中截取它,它确实有效。它纯粹是功能性的。如您所见,单击此单选框后,它将转到javascript函数,我是否在那里构建检查,我将如何进行类似的事情?
您需要编写 calculate_score()
函数,以便它根据用户选择的状态进行计算,而不是根据选中或取消选中按钮的操作进行计算。阻止用户更改其选择将是糟糕的可用性和糟糕的功能(除非在特殊游戏或测试中)。
您可以禁用刚刚选中的按钮,启用所有其他按钮,一旦用户更改其值,将启用以前的按钮,并且将禁用新的按钮,以防止用户进一步单击该
我建议你使用一个好的框架(如jQuery)并将你的javascript逻辑放入<script>
标签中, 但如果你这样做,你必须有你的理由。要禁用单击的输入元素,请尝试以下代码片段:
// i am assuming ('") will escape the quote (") character to echo
onclick='calculate_score(".$number.",this.value); this.onclick='"'";'
相关文章:
- 如何防止jQuery中复选框单击时执行多个代码
- 复选框单击功能不起作用
- 复选框单击覆盖表行单击
- 如果父项具有onclick绑定,则复选框单击将被忽略
- 在数据网格中的复选框单击时使用 Databinder.Eval
- 切换复选框 - 单击父 DIV 元素
- 如何调用文本框代码隐藏文本更改事件从复选框单击位于网格视图行内
- 在复选框单击时清理我的jQuery代码
- 复选框单击事件处理程序和显示/隐藏功能
- 防止多次单击选中的单选框
- 保留 Google 地图在复选框单击时缩放到 kml 图层
- 复选框单击事件 jQuery 不起作用
- jQgrid:禁用复选框单击,仅在单击复选框时选中复选框
- 复选框单击的限制
- 计数 + / - 用于复选框单击和取消单击
- 放大复选框单击区域
- 复选框单击功能不起作用
- 根据复选框单击更改表单输入的值
- 复选框单击有效,取消选中复选框不工作Javascript
- 在复选框单击中,更改可以单击的按钮