JQuery не получает обновленное значение, хотя DOM показывает иначе - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть этот ввод, который скрыт:

<input data-val="true" data-val-required="The ConfirmationResult field is required." id="ConfirmationResult" name="ConfirmationResult" type="hidden" value="false">

После закрытия моего модального всплывающего окна ConfirmationResult изменяется с false на true, как это:

$("#ConfirmationResult").val("true");

Затем я должен проверитьи посмотрите, не изменился ли ConfirmationResult на true здесь:

if ($("#@Html.IdFor(x=>x.ConfirmationResult)").val() === true)

Однако проблема в том, что по какой-то причине я вообще не могу получить обновленное значение.

Чего мне не хватает?

РЕДАКТИРОВАТЬ:

Вот как структурирован код.LoadConfirmationDetails устанавливает # ConfirmationResult

LoadConfirmationDetails();
console.log(document.getElementById('ConfirmationResult').value);
if ($("#@Html.IdFor(x=>x.ConfirmationResult)").val() === "true") {
    wrapperThis.processQueue();
}
console.log($("#@Html.IdFor(x=>x.ConfirmationResult)").val());

1 Ответ

0 голосов
/ 21 сентября 2019

Хорошо, я полагаю, что вы используете mvc + razor из того, как вы ищете идентификатор элемента

Прежде всего убедитесь, что правильный идентификатор отображается в селекторе на визуализированном dom, затемпопробуйте это:

if ($("#@Html.IdFor(x=>x.ConfirmationResult)").val() === 'true')

'===' будет ожидать, что логическое значение будет сравниваться, в противном случае он вернет false.Вам придется сравнивать с 'true', используя оператор '===', поскольку .val () вернет вам строку.

РЕДАКТИРОВАТЬ: просто добавьте ваше окончательное разрешение, чтобы другие могли найти, принятьиз комментариев к этому ответу.

Проблема заключалась в том, что событие не было вызвано как обратный вызов закрывающего события всплывающего окна, поэтому значение не было фактически изменено до вычисления оператора if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...