У меня есть веб-страница и веб-сетка на этой веб-странице, есть кнопка «Добавить», которая предоставляет пользователю возможность добавлять дополнительные записи в эту веб-сетку с помощью всплывающего окна, есть также опция «Изменить» для каждой строки в веб-сетке и поля и свойства модели для всплывающих окон 'Добавить' и 'Изменить' одинаковы ...

Я провел некоторую проверку, используя jquery для полей, если все поля содержат некоторые данные, тогда будет включена только кнопка «Сохранить» во всплывающих окнах «Добавить» и «Изменить», если какое-либо поле пусто, кнопка сохранения будет быть отключенным

Проблема в том, что когда пользователь открывает всплывающее окно «Добавить запись» и закрывает всплывающее окно без ввода каких-либо данных, а затем, когда он открывает всплывающее окно «Изменить запись», кнопка «Сохранить» отключается даже после того, как содержит все поля ...

Поэтому я просто очистил 'AddUserDiv' при нажатии кнопки отмены с помощью этого

 $('#DivAddUser').html('');

Это устранило предыдущую проблему, но это создает новую проблему, когда я открываю всплывающее окно «Добавить запись» во второй раз, открывается пустое всплывающее окно, и на нем нет элементов управления

Когда я обновляю страницу и нажимаю всплывающее окно «Добавить запись», тогда все работает нормально в первый раз

0
sebastian 23 Дек 2013 в 16:26

2 ответа

Лучший ответ

Как только вы очистите HTML, используя

$('#DivAddUser').html('');

Он останется очищенным, если вы не назначите ему новый HTML, поэтому, как и ожидалось, ваш предыдущий макет не будет виден.

Итак, что вам нужно сделать, это очистить / сбросить значения всех элементов внутри div.

РЕДАКТИРОВАТЬ: на основе вашего комментария

Вы можете сохранить предыдущий HTML-код в переменной, прежде чем вызывать указанную выше функцию очистки как

previousHTML = $('#DivAddUser').html()
//should be done just once in the beginning

А затем позвоните

$('#DivAddUser').html('');

А затем при отображении всплывающего окна «Добавить запись» вы установили

 $('#DivAddUser').html(previousHTML);

Но имейте в виду, что это неправильный способ удаления значений со страницы HTML. вам следует написать функцию clear (), в которой вы должны ссылаться на каждый элемент на странице и явно очищать или устанавливать значение по умолчанию.

0
gaurav5430 23 Дек 2013 в 12:45

Вы должны очистить поля ввода с помощью $('#elementID').val(''); если вы используете .html(''), он очистит HTML внутри этого div

0
Sridhar R 23 Дек 2013 в 12:29