0

我有一些字段设置了 keyup 和 blur 事件。一切都适用于 parsley js 进行验证,直到用户进入一个有 keyup 的字段时。然后,当他们的用户被标签进入该字段时,它会立即触发错误。因此,在用户甚至可以输入任何内容之前,他们都会遇到错误。有没有办法在不删除 keyup 事件的情况下阻止这种情况的发生。

 <input type="text" value="" placeholder="XXXX-XXXX-XXXX-XXXX" class="card" id="card" name="number" pattern="[0-9]*" data-trigger="blur keyup" data-required="true" data-validation-minlength="0" >
  • 现在,您单击输入字段,然后再次单击退出,模糊事件会触发错误。
  • 如果用户键入不正确的值 keyup 将触发,请单击字段开始键入。

以上所有工作都很棒。

  • 单击卡片字段之前的输入字段,然后选项卡到卡片输入字段,这是下一个索引,然后立即触发 keyup。

上面的场景是我想要停止发生的场景,直到用户在输入字段中键入。

4

1 回答 1

0

好的,对于遇到此问题的任何人来说,这是解决问题的一种方法。在卡片输入上设置一个焦点事件。确保你没有在你的 parsley event-trigger 属性中使用它。然后在 focusin 事件上删除香菜检查此事件。然后设置一个超时时间,这样你就可以在 parsley 完成初始要求的验证后将其替换回来。

我知道有点 hacky,我不喜欢使用计时器,但在这种情况下它可以工作。我尝试了 100,它适用于除 IE 之外的所有浏览器,所以我不得不增加到 200 以获得 IE 补偿。

$('.card').focusin(function(){

    $('form').parsley( 'removeItem', '#card' );
    setTimeout(function(){
        getCurrentForm().parsley( 'addItem', '#card' );
    },200);
});

希望这对某人有所帮助,因为我曾经问过关于欧芹的任何问题,我从来没有得到答复。似乎欧芹不是常见的问题。对于没有使用 Parsley js 的任何人来说,这是一个令人惊叹的验证库,你应该检查一下。

于 2013-07-15T19:35:31.137 回答