为什么取消输入提交而不是使用input type='button'
Why cancel an input submit instead of using input type='button'
我在工作中查看一个内部应用程序的源代码,我注意到一些我认为很奇怪的东西。
下面是有问题的html代码。
<input type='submit' onclick='return doSomething()' value='Stuff Here'>
这是JS函数
function doSomething() {
//open a window with an aspx page that pulls down a pdf
//always returns false
return false;
}
我的问题是。这与使输入type='button'和简单地调用函数而不强制返回值为false有什么不同?我理解这样做会取消表单提交,但如果你不想让它提交表单,为什么要把它设为提交类型呢?
有人这样做有很多原因,但我突然想到的是,这是在打开另一个页面。"return false;"可能表示用户已不在该选项卡中。
也可以在if()语句中使用true和false。这意味着,尽管它们是"真"answers"假",但有人可以这样使用它们:
if (var1 = false) {
var2 = true;
}
甚至:
if(var1 = false) {
functionThatHappensWhenvar1EqualsTrue();
}
所以,"true"answers"false"只是值。"假"可以表示真,"真"也可以表示假。
您所展示的代码并没有取消输入提交,而是返回一个值。输入通过并打开。pdf文档。
首先,因为你可以在一个表单上有多个提交按钮,如果你需要在提交表单之前运行javascript,在表单的"onsubmit"事件中执行,而不是在提交按钮的"onclick"事件中执行
如果您不希望表单提交,那么就不需要使用提交按钮。
你仍然需要防止表单本身被"隐式"提交
例如:<form>
<input type="text" name="name">
<input type="submit" value="Submit">
</form>
在文本框中按回车键将激活提交按钮,你可以告诉它执行一个函数。
但是,如果您有这样的内容(注意省略了提交按钮):
<form>
<input type="text" name="name">
</form>
或者
<form>
<input type="text" name="name">
<input type="button" value="Submit">
</form>
然后在文本字段有焦点时按enter键将提交表单。为了防止这种情况,您需要这样做(还没有真正测试过代码)
<form onsubmit="return false;">
<input type="text" name="name">
<input type="button" value="Submit">
</form>
相关文章:
- 正在将base64 jpeg从input-type=file上传到服务器
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- 如何使用 JavaScript 显示 html 输入:.html(' < input type=“text” /
- $('input[type=checkbox]').change(function()
- 如何在jquery中获取td innerhtml值,除了input type=“hidden”
- jQuery提交表单,然后禁用所有“input[type=”submit“]”以防止重复提交
- JavaScript / jQuery input[type=text] pattern
- 是否保证 document.querySelectorAll(“input[type=checkbox”) 的结果数组的
- Jquery selector input[type=text]')
- input type=“password” 在 IE 11 上使用 HTML 5 显示文本
- 我可以使用任何 HTML 或 JavaScript API 在 input[type=file] 中获取文件的路径吗?
- 如何调用“;点击“;输入类型“on input type”;文件“;通过调用其他元素的上下文
- input-type=附加到onclick事件的文件
- 当从代码进行Web浏览时,如何将信息发送到<input.*type=“;提交”>并检索得到的链接
- Inline input type="submit"按钮似乎重叠在onclick上
- input-type=file onchange事件未在googlechrome/ffirefox中启动
- Set the value of <input type="date"... in jquer
- 如何更改input type="file"的按钮文本元素
- On select Input type="file"更改输入类型"文本"
- 为什么取消输入提交而不是使用input type='button'