Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么Sagepay会干扰.valid()?_Javascript_Validation_Opayo - Fatal编程技术网

Javascript 为什么Sagepay会干扰.valid()?

Javascript 为什么Sagepay会干扰.valid()?,javascript,validation,opayo,Javascript,Validation,Opayo,我面临的问题是: 我使用validate()()在客户端进行验证 在模糊事件上,我调用($this).valid()用于我表单中的每个字段 在加载sagepay.js()之前,验证按预期进行 如果我加载sagepay.js(无论何时)($this).valid()总是返回true 我尝试更改事件,但sagepay覆盖了所有这些事件:blurfocusinfocusout加载调整大小滚动卸载单击鼠标向下鼠标移动鼠标悬停鼠标悬停鼠标悬停鼠标悬停更改选择提交按键按键按键错误上下文菜单 我的问题是:如何

我面临的问题是: 我使用
validate()
()在客户端进行验证

在模糊事件上,我调用
($this).valid()用于我表单中的每个字段

在加载sagepay.js()之前,验证按预期进行

如果我加载sagepay.js(无论何时)($this).valid()总是返回
true

我尝试更改事件,但sagepay覆盖了所有这些事件:
blur
focusin
focusout
加载
调整大小
滚动
卸载
单击
鼠标向下
鼠标移动
鼠标悬停
鼠标悬停
鼠标悬停鼠标悬停更改
选择
提交
按键按键按键错误上下文菜单


我的问题是:如何使用
($this).valid()
继续验证,或者为什么sagepay会覆盖
valid()

我认为这是wrt表单提交处理事件的方式所施加的限制。基本上,如果您希望能够对表单提交执行任何需要AJAX的验证或处理,那么必须禁用表单提交事件默认操作。一旦您这样做了,您就必须接管不合理的大量事件,以确保表单按预期运行,这会干扰验证库。很长一段时间以来,我一直在为这个问题绞尽脑汁,我也很想找到一个解决方案。让卡片标记化调用同步,你也许可以侥幸逃脱,但当AJAX调用发生时,你的浏览器会冻结,这并不理想。我目前的解决方法是将表单分为两页:第一页只标记信用卡,第二页只输入个人详细信息。在卡令牌到期之前,用户有600秒的时间完成第二张表单。不确定这是否是一个答案,或者只是另一个探索的途径。@Jason对于当前的规范,我无法拆分表单,也无法使调用同步。对于这些问题,公认的解决方案是使用focusout事件为5个字段中的每个字段实现自定义验证。由于这是一个解决办法,我们仍然需要一个更明确的答案。