0

我有一个表格,用户可以在其中给出 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 函数,我是否在那里建立检查,我将如何处理这样的事情?

4

3 回答 3

1

您可以禁用刚刚选中的按钮,启用所有其他按钮,一旦用户更改其值,将启用以前的按钮并禁用新的按钮,以防止用户进一步点击该按钮

于 2012-05-03T09:37:41.770 回答
1

您需要编写calculate_score()函数,使其根据用户选择的状态进行计算,而不是根据选中或取消选中按钮的操作。阻止用户更改他的选择将是糟糕的可用性和糟糕的功能(可能在特殊的游戏或测试中除外)。

于 2012-05-03T09:42:50.067 回答
0

我会建议你使用一个好的框架(比如 jQuery)并将你的 javascript 逻辑放入一个<script>标签中,但是如果你这样做,你必须有你的理由。要禁用单击的输入元素,请尝试以下代码段:

// i am assuming (\") will escape the quote (") character to echo
onclick='calculate_score(".$number.",this.value); this.onclick=\"\";'
于 2012-05-03T09:41:12.237 回答