React在IE 11中无法阻止表单提交

7

我的组件在使用React 15时遇到了一个问题。在IE 11中,除预期之外的一切都正常工作。

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

在render函数中的表单:

<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;
},

1
尝试将event.preventDefault()替换为event.preventDefault ? event.preventDefault() : (event.returnValue = false);。我知道这是针对> IE8的,但IE有时会出人意料。 - Nick Bull
尝试了这个但没有成功。无论如何还是谢谢。 - Gjoshevski
@Gjoshevski,你最终找到解决方法了吗? - C.J. Bordeleau
1
我无法让表单在IE 11中提交。我尝试了多种方法,最终采取了以下措施:删除onSubmit,将输入更改为type = button,并在按钮上添加一个onClick,以调用表单的功能。 - loonison101
@Gjoshevski,你能用F12检查控制台并查看是否有一些JS错误/警告吗? - Mselmi Ali
1个回答

0

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接