微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 表单init和字段init事件在parsley.js中不起作用

这是一个简单的例子:http://codepen.io/spacejaguar/pen/KrvqNW

HTML:

<form data-parsley-validate>
  <label for="name">Name:</label>
  <input type="text" name="name" required>
  <br>
  <input type="submit" value="validate">

  <p><small>This is a simplistic example, good to start from when giving examples of use of Parsley</small></p>
</form>

和JS

$(function () {
    $('form').parsley()
    .on('form:init', function() {
        console.log('Form init', arguments);
    })
    .on('field:init', function() {
        console.log('Field init', arguments);
    })
    .on('form:validate', function() {
        console.log('Form validate', arguments);
    })
    .on('form:submit', function() {
        return false; // Don't submit form for this demo
    });
});

似乎form:init或field:init回调函数根本没有调用,而任何其他函数都可以正常工作.我做错了什么?或许这是一个错误

[编辑]
我查看了源代码并做了一些调试工作,似乎在连接任何侦听器之前触发了init事件.创建欧芹实例看起来很相似:

> $.fn.parsley被调用
– 创建新的ParsleyFactory,调用init fn
— ParsleyFactory.prototype.init验证配置等并调用bind fn
—- ParsleyFactory.prototype.bind决定创建哪个构造函数(ParsleyForm,ParsleyField或ParsleyMultiple)
—–调用新的ParsleyForm并返回实例
—- ParsleyFactory.prototype.bind触发init事件并返回实例
— ParsleyFactory.prototype.init返回实例
– ParsleyFactory构造函数返回实例
> $.fn.parsley返回实例
> .on(‘field:init’,function(){…})被绑定

解决方法:

我遇到了同样的问题,感谢您对事件触发的研究,我找到了解决方案.只需将事件处理程序绑定到window.Parsley对象,它就可以正常工作.

例如:

window.Parsley.on('form:init', () => console.log('form:init'))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐