Niceforms и события jQuery - PullRequest
0 голосов
/ 15 марта 2010

Наше дизайнерское агентство предоставило HTML, который использует NiceForms . У меня проблема в том, что это портит привязку событий jQuery.

У меня есть следующий код:

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

Если я отключаю NiceForms, этот код работает, но с включенным Niceforms это не так. Как мне обойти эту проблему?

Ответы [ 2 ]

2 голосов
/ 15 марта 2010

Исправьте опечатку в вашем коде, посмотрите, работает ли она тогда:

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 голосов
/ 18 марта 2010

Хорошо, оказалось, что проблема в том, что изображение Niceforms при нажатии не вызывает событие onchange основного флажка.

Чтобы вызвать основное событие, найдите функцию inputCheck в NiceForms.js и измените следующее (предполагается, что вы используете 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";
    }
}
...