【问题标题】:React doesn't prevent form submit in IE 11React 不会阻止 IE 11 中的表单提交
【发布时间】:2016-11-26 11:56:50
【问题描述】:

我的组件面临一个使用 React 15 无法解决的问题。一切都按预期工作,除了 IE 11。

基本上看起来 IE 11 忽略了 event.preventDefault() 函数(以及下面代码中的所有注释函数,都尝试过)并提交数据。页面重新加载,查询参数在 url 中。我想防止页面重新加载,只执行handleSubmit函数中的逻辑。

渲染函数中的表单:

<form onSubmit={this.handleSubmit}>
   <input ref="email" type="email" name="username" required></input>
   <input ref="pass" type="password" name="pass"required></input>
   <input type="submit" name="login" value="Login" />
</form>

这是 hanleSubmit 函数:

handleSubmit: function (event) {

   event.preventDefault();
   //event.returnValue = false;
   //event.stopPropagation();
   //event.nativeEvent.preventDefault(); 

   var email = this.refs.email.value;
   var pass = this.refs.pass.value;

   //return false;
},

【问题讨论】:

  • 尝试将event.preventDefault() 替换为event.preventDefault ? event.preventDefault() : (event.returnValue = false);。我知道这适用于 > IE8,但 IE 有时会让人感到意外。
  • 试过这个但没有运气。还是谢谢。
  • @Gjoshevski 你最终找到解决办法了吗?
  • 我无法让表单提交在 IE 11 中工作。我求助于 - 删除 onSubmit,将输入更改为 type=button,并向调用表单内容的按钮添加一个 onClick是的。
  • @Gjoshevski,你能用 F12 检查控制台,看看是否有一些 JS 错误/警告?

标签: javascript internet-explorer reactjs internet-explorer-11 frontend


【解决方案1】:

preventDefault() 函数在 Internet Explorer 11 中应该可以正常工作,但是您的脚本中可能会遇到另一个问题,该问题会触发错误/警告,导致无法调用 preventDefault()

我建议使用 F12 检查控制台,看看是否有一些 JS 警告。

【讨论】:

    猜你喜欢
    • 2017-02-10
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多