我正在使用以下内容重置我的表单:
<script type="text/javascript">
window.onload = function () {
document.getElementsByName("email_address")[0].value = "";
document.getElementsByName("remove")[0].value = "off";
}
</script>
问题是复选框“remove”似乎在服务器端脚本可以运行之前被重置。因此实际上,在运行php脚本之前,用户在复选框上选择的内容将被覆盖并设置为关闭。然而,输入框“email_address”很好......
测试...
//this is already set to OFF by the time we get here....even if the user may have ticked the checkbox to ON
echo $HTTP_GET_VARS['remove'];
//this is fine, the email_address input is read and not reset...
echo $HTTP_GET_VARS['email_address'];
任何人都可以解释一下吗? 我显然希望在我的服务器端脚本完成处理后重置表单,但由于某种原因它会提前重置复选框,但输入框没问题......
谢谢你!答案 0 :(得分:3)
我真的很困惑。你说你不希望在它返回一个提交后的值之前清除表单(你在这里做ajax表吗?)但你发布的示例代码设置为在页面加载时执行。 当然它会在提交之前重置。
相反,您需要将其设置为在表单提交完成后执行并且您有预期的响应。
不用手动重置每个表单元素,只需使用form.reset()
方法。
答案 1 :(得分:1)
尝试使用以下内容而不是关闭
document.getElementsByName("remove")[0].checked = false;
欢呼声
答案 2 :(得分:1)
为什么不呢......
document.forms[0].reset();