IE11的奇怪行为与onsubmit和页面上的两种形式

时间:2015-05-18 19:31:04

标签: javascript internet-explorer-11 onsubmit

仅在使用IE11

时才会发生这种情况
<script>
function validate_form1(){
}

function validate_form2(){
}
</script>    
<form action=some-target onsubmit="return validate_form1()"></form>
<form action=some-other-target onsubmit="return validate_form2()"></form>

当validate_form1()返回true时,执行继续执行validate_form2() 为什么呢?

1 个答案:

答案 0 :(得分:0)

看起来像IE11中的错误(除非在兼容模式下)。

以下解决方法对我有用,使用提交按钮的onclick事件设置javascript变量,然后在验证函数中检查其值。

<script>
var pushed;
function validate_form1(){
 if (pushed == 'one') {
  ...
 }
}

function validate_form2(){
 if (pushed == 'two') {
 ...
 }
}
</script>    
<form action=some-target onsubmit="return validate_form1()">
<input onclick="pushed='one';" type="submit" name="But1" value="Submit form1">
</form>

<form action=some-other-target onsubmit="return validate_form2()">
<input onclick="pushed='two';" type="submit" name="But2" value="Submit form2">
</form>