停止IE10提交表单

时间:2015-07-24 20:34:19

标签: javascript jquery forms internet-explorer submit

我有一个表单正在向外部服务提交一些数据。它可以在Chrome中运行,但表单仍然在IE10中提交。我查看了this帖子,但解决方案无效。

这是我的javascript代码:

$('#scanUrl').submit(function(event){
        event.preventDefault();     
});

然后我使用jquery-1.11.3.min.js,我的表单看起来像这样:

<form style="margin-left:10%;" id="scanUrl">
  <div class="form-group">
    <label for="urlHolder" style="color: white; font-size: medium;">URL to Scan:</label>
    <input type="text" class="form-control" id="urlHolder" style="width: 40%;">
  </div>
  <button class="btn btn-primary btn-lg" >Scan</button>
  <button class="btn btn-primary btn-lg" id="helpButton">Help</button>
</form>

所以我尝试了很多东西(没有特定的顺序):

  1. event.stopPropagation();

  2. if(!event) event = window.event;

  3. event.returnValue = false;
  4. .click()代替.submit()
  5. jquery 1.7(旧版jquery)我知道1.x支持IE6 +,2.x支持IE9 +。所以我应该能够使用2.x但为了安全起见我使用的是1.x
  6. 为什么要在IE10中提交?

2 个答案:

答案 0 :(得分:0)

试试这个纯JS代码

var form = document.getElementById('scanUrl');
if (form.addEventListener){
    form.addEventListener('submit', handler, false);
} else if (element.attachEvent){
    form.attachEvent('onsubmit', handler);
} else {
    form ['onsubmit'] = handler;
}

function handler(event){
    var e = event ? event : window.event;
    if(e.prevnetDefault) {
        e.preventDefault();
    } else { 
        e.returnValue = false;
   }     
}

答案 1 :(得分:-2)

event.preventDefault()是正确的并且有效。 但是,完整代码中的其他行可能会令人困惑。 尝试在另一个HTML文档中隔离此片段。这对我有用。