我隐藏了此输入:
<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());
答案 0 :(得分:0)
好吧,我想您是从寻找元素ID的方式使用mvc + razor
首先请确保在渲染的dom的选择器中渲染了正确的ID,然后尝试以下操作:
if ($("#@Html.IdFor(x=>x.ConfirmationResult)").val() === 'true')
'==='将期望一个布尔值进行比较,否则将返回false。 您将不得不使用'==='运算符与'true'进行比较,因为.val()会将字符串返回给您。
编辑:仅添加最终答案,以便其他人从此答案的评论中找到。
问题在于该事件未作为弹出窗口的关闭事件的回调而调用,因此在评估if
语句之前,该值实际上并未更改。