Я создал несколько ящиков во время выполнения, где я хочу подтвердить, все ли ящики «Пустые», тогда пользователь не сможет продолжить. Но если даже один Box содержит правильное значение (вместо Empty), пользователь сможет продолжить.

Я создал следующий код:

$(document).ready (function () {
    setProceedState();

});

function setProceedState() {
    if ($('.type').length == $('.type:empty').length) {
        alert("Empty" + $(".type").html());
        $("#stepAutomapConfirm").attr("disabled", true);
        $("#stepAutomapConfirm").addClass("disabled").removeClass("active");
    } else {
        alert("NOT Empty" + $(".type").html());
        $("#stepAutomapConfirm").attr("disabled", false);
        $("#stepAutomapConfirm").addClass("active").removeClass("disabled");
    }
}

Каким-то образом этот код отлично работает в скрипке: http://jsfiddle.net/aasthatuteja/xJtAV/ < / a>

Но на моей странице MVC Partial View он не работает полностью:

Он всегда дает мне правильное уведомление, если поля "пусты",

НО , когда он создает поля с данными в нем во время выполнения , он все еще показывает предупреждение "ПУСТО". Я проверил "источник просмотра" и " проверить элемент "тоже, в источнике данные действительно существуют, а затем, когда я вручную обновляю свою страницу после этого, он дает правильные предупреждения" НЕ Пусто ".

Подскажите, что мне не хватает или что может быть альтернативой для JQuery ":empty", чтобы код работал в частичном просмотре MVC !

Сообщите мне, если вам понадобится дополнительная информация!

0
UID 9 Окт 2013 в 18:27
.type кажется классом, который, возможно, мог бы использоваться некоторыми другими элементами в другом месте, вы уверены, что ничто другое не использует этот класс, что могло бы исказить ваши результаты?
 – 
Kevin B
9 Окт 2013 в 18:34
".type" - это класс в полях, в которых я получаю значения, если вы обратитесь к скрипке, это может дать лучшее представление ...
 – 
UID
9 Окт 2013 в 18:36
Я понимаю это, но ваша скрипка работает нормально, проблема в вашем реальном сайте, который, очевидно, имеет больше элементов, чем эта скрипка. есть ли на ЭТОМ сайте дополнительные элементы на странице с этим классом. с тем, что вы нам дали, все, что мы можем сделать, это предположить, потому что вы не воспроизвели свою проблему. вы показали нам, что ваш код работает сам по себе, поэтому проблема должна быть в другом месте.
 – 
Kevin B
9 Окт 2013 в 18:37
Нет, только внутри ящиков стоит класс ".type". Странно это, не только в Fiddle, этот код также отлично работает на моей странице, когда
".type" пуст, он просто не обновляется и не проверяется автоматически, когда данные были добавлены ... и когда я вручную обновляю затем он обнаруживает, что
 – 
UID
9 Окт 2013 в 18:41
Операторы if не запускаются автоматически при изменении состояния ...
 – 
Kevin B
9 Окт 2013 в 18:43

1 ответ

Лучший ответ

Вам необходимо повторно выполнить свою функцию после того, как вы сгенерируете блоки, on ready работает только для блоков, которые существуют в состоянии готовности dom.

2
Kevin B 9 Окт 2013 в 18:57