gpt4 book ai didi

javascript - 表单初始化和字段初始化事件在 parsley.js 中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:36 25 4
gpt4 key购买 nike

这是一个简单的例子: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:initfield:init 回调函数,而其他任何一个都可以正常工作。我做错了什么?或者这可能是一个错误?

[编辑]
我查看了源代码并做了一些调试,似乎在附加任何监听器之前触发了 init 事件。创建欧芹实例看起来很像:

  • $.fn.parsley 被称为
    -- 创建新的 ParsleyFactory,调用 init fn
    --- ParsleyFactory.prototype.init 验证配置等并调用 bind fn
    ---- ParsleyFactory.prototype.bind 决定创建哪个构造函数(ParsleyForm、ParsleyField 或 ParsleyMultiple)
    ----- 调用新的 ParsleyForm 并返回实例
    ---- ParsleyFactory.prototype.bind 触发初始化事件并返回实例
    --- ParsleyFactory.prototype.init 返回实例
    -- ParsleyFactory 构造函数返回实例
  • $.fn.parsley 返回实例
  • .on('field:init', function() { ... }) 正在绑定(bind)

最佳答案

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

例如:

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

关于javascript - 表单初始化和字段初始化事件在 parsley.js 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38240837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com