Я пытаюсь автоматически выполнить предварительную обработку формы, когда форма загружается на моем сайте. Это может произойти с помощью обычной загрузки страницы, но также с помощью встроенной загрузки AJAX. Поэтому положить его в $(document).ready(function() { /* ... */ });
не устраивает моих потребностей.jQuery Dynamic on form load
То, что я до сих пор:
$("form").each(function() {
$(this).ready(function() {
$(this).find(".input input").each(function() {
var required = $(this).data("required");
var checkField = $(this).closest("tr").children(".check");
var errorField = $(this).closest("tr").children(".errormessage");
if (required) {
$(checkField).css("color", "#FFFF00");
$(checkField).html("✘");
$(errorField).css("color", "#FFFF00");
$(errorField).html("(Required)");
}
else {
$(checkField).css("color", "#FFFF00");
$(checkField).html("✔");
$(errorField).css("color", "#000000");
$(errorField).html("");
}
});
});
});
При вводе его в $(document).ready(function() { /* ... */ });
она работает, но только для первой загрузки. Когда я выхожу из этой функции, он никогда не работает, он даже не достигает $("form").each(function() { /* ... */ });
.
Как это исправить?
Это потому, что загружается 'form', загружается Ajax, если вам нужно будет прослушать документ для него, например. '$ (document) .find ('form')' .. поэтому его можно найти после загрузки '.ajax'. – MackieeE
Не нужно '$ (document.ready (function() {$ (document) .on (" ready "," form ", function() {/ * ... * /}); идея, стоящая за ней. – skiwi
Просто подтвердил, что он работает с '.on (« click », ...)', однако он, похоже, не работает с '' ready ''. – skiwi