首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不让按钮提交表单Javascript

不让按钮提交表单Javascript
EN

Stack Overflow用户
提问于 2016-07-10 21:19:13
回答 8查看 12.6K关注 0票数 5

我正在学习JavaScript,无法在不提交表单的表单中生成一个按钮。还有一个类似的问题这里,但是最流行的指定type="button"的答案不适用于我的情况,其他答案涉及到jQuery,我想暂时忽略它。

代码语言:javascript
运行
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<script type="text/javascript">
        function submit(){
                alert("Yo")
        }
</script>
</head>

<body>
<form name="myForm" onsubmit="submit()">
        <input type="button" value="Submit!" onClick="submit()" />
</form>
</body>
</html>
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2016-07-10 21:37:32

由于您没有使用type="submit",所以表单提交任何内容的唯一原因是当单击按钮时,您实际上是在调用submit()方法。(嗯,算是吧。它实际上是form.submit() --您创建的方法是window.submit())。

默认情况下,type="button"的输入不会执行表单提交,除非您真正地调用form.submit()

票数 3
EN

Stack Overflow用户

发布于 2016-07-10 21:21:42

将事件作为参数传递到submit函数中,并防止其默认行为:

代码语言:javascript
运行
复制
function submit(event) {
    event.preventDefault();
    alert('Yo');
}

onClick='submit(event)'
票数 2
EN

Stack Overflow用户

发布于 2016-07-11 01:11:37

自Netscape公司引入Javascript以来,为定义为HTML属性值的表单元素事件处理程序提供了一个特殊的作用域链,在搜索全局对象之前搜索单击的元素和表单元素的属性。这为web程序员提供了方便,并且早于文档对象模型的引入,该模型具有标准化的访问和操作方法。因此

代码语言:javascript
运行
复制
<input type="button" value="Submit!" onClick="submit()" />

单击时,执行从HTML属性字符串创建的非命名函数:

代码语言:javascript
运行
复制
function( event) { submit()}

它搜索其作用域链以查找submit,并将其作为包围form对象的属性。可能的解决方案包括

  • 显式指定要执行的函数的全局版本: onclick="window.submit()“
  • 将全局函数命名为其他东西,例如"preSubmit",这与表单对象的属性没有冲突: onclick="preSubmit()“
  • 在创建按钮元素之后,将click事件处理程序添加到javascript中的按钮中(只有HTML中指定的函数具有特殊的作用域链)。

第19.1.6款.来自O‘’Reilly的"Javascript最终指南“的第19章中事件处理程序的范围是我能够找到的唯一讨论这一问题的链接。

在@progysm对另一个答复的评论后更新

HTML提供的事件处理程序的作用域链现在在HTML5标准的列表项1.10下被覆盖,它指示处理程序的词法作用域包括单击的元素、它所属的表单(如果有的话)和文档对象。我要提醒您不要过于依赖它:一些浏览器过去常常将单击元素的每个父对象都包含在其作用域链中,而不仅仅是它的表单和文档。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38296557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档