2010-03-15 49 views
0

我们的设计机构提供了使用NiceForms的HTML。我遇到的问题是,这会让jQuery事件绑定变得麻烦。Niceforms和jQuery事件

我有以下代码:

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

如果我禁用NiceForms此代码的工作,但在启用Niceforms事实并非如此。我如何解决这个问题?

回答

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"; 
    } 
} 
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是包含表单输入元素的元素的正确选择器,对吗?

+0

对不起错别字只有在代码中我曾写到这里(我)无论如何,我仍然遇到同样的问题 – 2010-03-16 09:03:37

+1

正如我所提到的,我使用NiceForms演示下载测试了您的代码,并且它按预期工作,所以我们错过了一些信息。我建议你发布你的HTML或链接到现场演示显示问题。 – ghoppe 2010-03-16 14:51:50