下面显示的HTML表单在Opera(版本:9.52)中无法正常工作。表单没有onsubmit属性,也没有type = submit的input元素。它只有两个输入元素type = button,并且两个onclick都调用一个js方法,我希望用户确认提交。如果我删除confirm()调用,它完全正常。在所有其他浏览器(FF2,FF3,IE7)中它运行正常。
任何指针?
<script type = "text/javascript">
function userSubmit(submitStatus)
{
// Omitted code that uses the parameter 'submitStatus' for brevity
if(confirm('Are you sure you want to submit?'))
document.qpaper.pStatus.value = something;
else
return;
document.qpaper.submit();
}
</script>
<form name = "qpaper" method = "post" action = "evaluate.page">
<input name = "inp1" type = "button" value = "Do This" class = "formbutton" onClick = "userSubmit(false)">
<input name = "inp2" type = "button" value = "Do That" class = "formbutton" onClick = "userSubmit(true)">
</form>
答案 0 :(得分:2)
切勿使用document.nameofsomething
。这是一种过时的技术,在21世纪的浏览器中提供了不完整的支持。对于表单,请使用document.forms.nameofform
。
不要使用onclick on按钮,除非你需要Javascript来表现不同,具体取决于按下了哪个按钮。如果您只想验证表单或确认提交,请改用<form onsubmit>
。
<form onsubmit="return confirm('Sure?')">
这样你甚至不需要form.submit()
。如果<form onsubmit>
返回false,则提交将被中止。
您甚至不需要找到该表格
<button onclick>
形式为this.form
<form onsubmit>
表单中的this
变量。