0

我们的设计机构提供了使用NiceForms的 HTML 。我遇到的问题是这搞砸了 jQuery 事件绑定。

我有以下代码:

keys = $("#key input");
$(keys).each(function(){
  $(this).change(function() {
    console.log("hi");
  });
});

如果我禁用 NiceForms,则此代码有效,但启用 Niceforms 时则无效。我该如何解决这个问题?

4

2 回答 2

2

修复代码中的拼写错误,然后看看它是否有效:

keys = $("#key input");
$(keys).each(function(){
  $(this).change(function() {
    console.log("hi");
  });   // <-- oops
});     // <-- oops

我使用 NiceForms 演示进行了测试:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

和选择器keys = $(".niceform input");,并在修复错别字后,它按预期工作。您将代码包含在$(document).ready(function () {}处理程序中,对吗?#key是包含表单输入元素的元素的正确选择器,对吗?

于 2010-03-15T17:47:13.703 回答
0

好的,事实证明,问题在于单击 Niceforms 图像时不会引发底层复选框的 onchange 事件。

要引发底层事件,请在 NiceForms.js 中找到 inputCheck 函数并更改以下内容(假设您使用的是 jQuery):

  el.dummy.onclick = function() {
    if(!this.ref.checked) {

        this.ref.checked = true;
        $(this.ref).change(); //added
        this.className = "NFCheck NFh";
    }
    else {

        this.ref.checked = false;
        $(this.ref).change(); //added
        this.className = "NFCheck";
    }
}
于 2010-03-17T23:05:04.843 回答