gpt4 book ai didi

javascript - JSTL 复选框不起作用

转载 作者:行者123 更新时间:2023-12-03 12:26:09 25 4
gpt4 key购买 nike

情况:当我们勾选复选框时,会发送一个 post 请求,并且复选框值为 false 我们在验证中将 Model 设置为 true。

问题
但问题是这个 Model 对象也是一个 session 属性,并没有在 jsp 上反射(reflect)这一变化。所以问题是 obj.value 在这两种情况下总是 false ?

<div class="block">
<label class="medium">Attach authority:</label>
<input type="checkbox" value="${Model.noticeDetailsModel.fullAuthority}"
<c:if test="${Model.noticeDetailsModel.fullAuthority}">checked="checked"</c:if>
id="fullAuthority" onchange="javascript: setNoticeDetails(this);"/>
</div>

//set up details
function setNoticeDetails(obj) {
$.post("generateNotice.do", {
value : obj.value,
name : obj.id,
stage : "setNoticeDetails"
});
}

情况 2:当我们勾选该复选框时,在发送第一个请求后,再次发送一个 post 请求,其中复选框值为 false 而不是 true(因为我们在模型对象中将值设置为 true,即“Model”)

最佳答案

由于我看不到 Controller 代码,我假设java端,即接收post请求工作正常

但是:

您的函数setNoticeDetails发送一个ajax请求,您的代码会忽略该请求的响应,因为您尚未实现成功处理程序。请参阅http://api.jquery.com/jquery.post/更多细节。

因此,因为它是 ajax 请求,所以 html/页面不会重新加载 - 相反,您应该通过 javascript 操作 html - 例如,如果您只想更改复选框的值,请执行以下操作:

function setNoticeDetails(obj) {
$.post("generateNotice.do", {
value : obj.value,
name : obj.id,
stage : "setNoticeDetails",
success: function(data) {
if ( $("#fullAuthority").val() === "true" ){
$("#fullAuthority").val("false");
} else {
$("#fullAuthority").val("true");
}
}
});
}

关于javascript - JSTL 复选框不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24197942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com