我有一个问题,我不知道如何解决。我想在javascript中更改表单的属性。我这样做:
$(document).ready(function() {
$("#submitCheckbox").click(function() {
if($('#abc').prop('checked')==false){
$('#abc').val(false);
var a;
a=$('#abc').val();
alert(a);
}
});
});
我的JSP :(这只是一部分,而且是形式)
<html:checkbox property="abc" value="1" styleId="abc" />
<bean:message key="label.form.abc" />
<html:submit styleClass="btn btn-primary" styleId="submitCheckbox">
<bean:message key="button.continue" />
</html:submit>
在我的动作中,我有(abc是表单中的一个属性,它具有getter和setter并正确发送值一个):
System.out.println(registration.isAbc());
好的,所以当我选中一个复选框时,它将abc值设置为1(true)。但是,当我转到下一页,然后返回带有复选框的页面时,我取消选中了先前选中的页面,因此我希望将其值设置为零/ false。 Java脚本警报显示该值等于false(所以我认为它已更改),但是当我转到下一页时,它仍等于true(因此它没有更改)。
因此,如何在Java脚本中更改form属性的值,以便表单记住它?
最佳答案
您可以添加一个隐藏字段来保存未选中的值
<html:hidden property="abc_unchecked"/>
具有相同的属性类型和值,例如
abc
但名称不同。现在,当复选框更改状态时,javascript应该修改其值。<script type="text/javascript">
$(document).ready(function() {
$("#abc").change(function() {
if($("#abc").prop("checked")==false){
$("#abc_unchecked").val(false);
var a;
a=$("#abc_unchecked").val();
alert(a);
} else {
$("#abc_unchecked").val(true);
var a;
a=$("#abc_unchecked").val();
alert(a);
}
});
});
</script>
然后在验证之前,在操作或表单中检查未检查的值
if (isAbc_unchecked())
setAbc(false);
} else {
if(!isAbc()){
setAbc(true);
}
}
关于javascript - 使用Struts 1.3在javascript中更改form属性的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25303504/