2013-12-05 1 views
0

У меня есть этот «шаблон» код (только для примера):JQuery форма на готовом/нагрузки не работает

$(document).on("<EVENT>", "form", function() { 
    $(this).find(".input input").each(function() { 
     var required = $(this).attr("required"); 
     var checkField = $(this).closest("tr").children(".check"); 
     var errorField = $(this).closest("tr").children(".errormessage"); 
     if (required != undefined) { 
      $(checkField).css("color", "#FFFF00"); 
      $(checkField).html("&#x2718;"); 
      $(errorField).css("color", "#FFFF00"); 
      $(errorField).html("(Required)"); 
     } 
     else { 
      $(checkField).css("color", "#FFFF00"); 
      $(checkField).html("&#x2714;"); 
      $(errorField).css("color", "#000000"); 
      $(errorField).html(""); 
     } 
    }); 
}); 

Когда <EVENT>, например, click или mouseover, он просто работает, как ожидалось.
Однако он отказывается работать над событием ready или load, какой-либо подсказкой, почему?

+0

Для формы нет событий 'ready' или' load'. «Форма» готова, когда «документ» готов. Прочитайте документы [.ready] (http://api.jquery.com/ready/) для jQuery. – CodingIntrigue

+0

'$ (document) .on (...)' сам вызывается при загрузке страницы, и я не уверен, почему вы хотите запускать его автоматически, если вы хотите выполнить некоторый код js на загрузке страницы, тогда заключите их внутри '$ (document) .on (...)' – dreamweiver

+0

готов или загружен только для документа, чего вы ожидаете от загрузки формы? – Andrew

ответ

1

От http://api.jquery.com/on/

Во всех браузерах, событие загрузки, прокрутка и ошибки (например, на элементе) не пузырь. В Internet Explorer 8 и ниже события вставки и сброса не пузырятся. Такие события не поддерживаются для использования с делегированием, но они могут использоваться, когда обработчик события напрямую привязан к элементу, генерирующему событие.