javascript - Opera 中的 HTML 表单提交

标签 javascript html cross-browser opera

下面显示的 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>

最佳答案

  1. 切勿使用document.nameofsomething 。这是一种过时的技术,在 21 世纪的浏览器中的支持并不完善。对于表单,请使用 document.forms.nameofform .

  2. 不要在按钮上使用 onclick,除非您需要 Javascript 根据按下的按钮做出不同的行为。如果您只想验证表单或确认提交,请使用 <form onsubmit>相反。

    <form onsubmit="return confirm('Sure?')">
    

    这样你甚至不需要 form.submit() 。如果<form onsubmit>返回 false,提交将被中止。

  3. 您甚至不需要找到该表单。
    <button onclick>形式将是 this.form .
    <form onsubmit>表格将在 this变量。

关于javascript - Opera 中的 HTML 表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/323648/

相关文章:

javascript - 使用两个选择控件编辑表单,以便在首次启动时进行过滤

html - 容器外的文本中心

javascript - AngularJS ng- Controller 不工作

HTML 表 : THEAD width depending on TBODY in Chrome

javascript - 如何在我的 JQuery 中为 Off Canvas 菜单提供 vendor 前缀

javascript - CSS 非典型清除 float 错误

javascript - React 中的 setState 基于当前状态

javascript - 为phonegap应用程序预先创建html服务器端的缺点

html - 单击 bootstrap 下拉时,div 中的所有元素都移动到中心

cross-browser - 主要浏览器在不同操作系统之间的渲染有什么不同吗?