下面显示的 HTML 表单在 Opera(版本:9.52)中无法按预期工作。该表单没有 onsubmit 属性,也没有 type=submit 的 input 元素。它只有两个 type=button 的输入元素,并且它们两个 onclick 都调用一个 js 方法,我希望用户在其中确认提交。如果我删除确认()调用,它工作得很好。在所有其他浏览器(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>
最佳答案
切勿使用
document.nameofsomething
。这是一种过时的技术,在 21 世纪的浏览器中的支持并不完善。对于表单,请使用document.forms.nameofform
.不要在按钮上使用 onclick,除非您需要 Javascript 根据按下的按钮做出不同的行为。如果您只想验证表单或确认提交,请使用
<form onsubmit>
相反。<form onsubmit="return confirm('Sure?')">
这样你甚至不需要
form.submit()
。如果<form onsubmit>
返回 false,提交将被中止。您甚至不需要找到该表单。
在<button onclick>
形式将是this.form
.
在<form onsubmit>
表格将在this
变量。
关于javascript - Opera 中的 HTML 表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/323648/