jQuery不会获得更新的值,即使DOM显示其他情况也是如此

时间:2019-09-21 09:42:41

标签: javascript jquery

我隐藏了此输入:

<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是否在此处更改为真:

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 :(得分:0)

好吧,我想您是从寻找元素ID的方式使用mvc + razor

首先请确保在渲染的dom的选择器中渲染了正确的ID,然后尝试以下操作:

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

'==='将期望一个布尔值进行比较,否则将返回false。 您将不得不使用'==='运算符与'true'进行比较,因为.val()会将字符串返回给您。

编辑:仅添加最终答案,以便其他人从此答案的评论中找到。

问题在于该事件未作为弹出窗口的关闭事件的回调而调用,因此在评估if语句之前,该值实际上并未更改。