【发布时间】:2017-04-24 02:17:37
【问题描述】:
我在 IE 11 中遇到了表单 onsubmit 函数的问题。 当提交按钮被触发时,“doSomething()”函数将被调用。在“doSomething()”函数中,我调用了另一个函数来进行一些输入验证。此函数始终返回 false,但如果所有验证错误都消失了,则将标志设置为 true。如果标志设置为真,“doSomething()”函数返回真,表单将被提交并调用动作。此模式适用于 Firefox、Chrome 和 Safari,但不适用于 IE11。在 IE 中,它在“doSomeValidation()”函数准备好之前调用该操作。 :-/ 有人可以帮我吗?非常感谢!!!
<form action="headToNextPage.php" onsubmit="return doSomething()">
js
flag = false, // a global flag inside the js-script
function doSomeValidation(){
// validate the inputs and set "flag" to true if all errors are gone
}
function doSomething(){
doSomeValidation(); // do the validation stuff
if(flag==true) {
// do some other stuff
return true
}
return false;
}
【问题讨论】:
-
试试
console.log(window.flag,flag)你在哪里使用它,看看你是否得到你的想法。还返回标志而不是真或假:function doSomething(){ doSomeValidation(); return flag;} -
不能用一点html5约束验证吗?几乎不需要js...能不能给我们看完整的html表单?
-
可能是 doSomeValidation 中的一些异步调用
-
不幸的是,我无法向您展示整个表单,因为它与工作相关......这就是为什么我需要使用 IE 的原因,因为它是公司的标准浏览器。 -_- 我需要一个自定义验证,显示 css 样式的消息和图标以及其他东西,这就是我这样做的原因(使用 JS)...
-
@Mahi ...你的意思是“承诺”?
标签: javascript html forms internet-explorer onsubmit