我正在工作的内部应用程序上查看一些源代码,我发现了一些我认为很奇怪的东西。
以下是相关的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的情况下调用函数?我知道它的完成方式取消了表单提交,但如果您从未希望它提交表单,为什么要首先将其作为提交类型?
答案 0 :(得分:-1)
有很多人会做这样的事情,但突然出现的是它正在打开另一页。 “回归虚假”;可能是说用户不再在该标签中。
此外,可以在if()语句中使用true和false。这意味着,尽管它们是“真实的”和“虚假的”,但有人可以这样使用它们:
if (var1 = false) {
var2 = true;
}
甚至:
if(var1 = false) {
functionThatHappensWhenvar1EqualsTrue();
}
所以,“真实”和“假”只是价值观。 “虚假”可能意味着真实,“真实”可能意味着虚假。
您显示的代码不是取消输入提交,而是返回一个值。输入经过并打开了.pdf文档。
答案 1 :(得分:-1)
首先,由于您可以在表单上有多个提交按钮,如果您需要在提交表单之前运行javascript,请在“onsubmit”事件中执行,而不是在提交按钮的“onclick”事件中执行
如果您不希望表单提交,则不需要使用提交按钮。
您仍然需要阻止表单本身“隐式”提交
例如:
<form>
<input type="text" name="name">
<input type="submit" value="Submit">
</form>
在文本字段中按Enter键将激活提交按钮,您可以告诉它执行某个功能。
但是,如果您有类似的内容(请注意省略提交按钮):
<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>