【问题标题】:Stop IE10 Submitting form停止 IE10 提交表单
【发布时间】:2015-07-24 20:34:19
【问题描述】:

我有一个向外部服务提交一些数据的表单。它在 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

为什么要在IE10中提交?

【问题讨论】:

  • 一种可能性是在此代码甚至触发之前引发错误,并且 preventDefault 和 submit 处理程序永远不会被激活。控制台有错误吗?
  • @Nathan 已经在 OP 代码中
  • @charlietfl 是的,我意识到为时已晚!刚刚删除它。
  • @charlietfl 好的,那为什么在代码触发之前会出现错误?
  • IE 讨厌所有人...哎呀...其他方式

标签: javascript jquery forms internet-explorer submit


【解决方案1】:

试试这个纯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;
   }     
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-07-09
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 2011-10-21
      相关资源
      最近更新 更多