用Struts 1.3在javascript中改变form属性的值

Changing the value of form property in javascript with Struts 1.3

本文关键字:form 改变 属性 javascript Struts      更新时间:2023-09-26

我有一个问题,我不知道如何解决它。我想改变我的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和send value 1正确)

System.out.println(registration.isAbc());

好的,所以当我选中一个复选框时,它将abc值设置为1(true)。但是当我转到下一页,然后回到有复选框的那一页,我取消了之前选中的那一页,我想把它的值设为0/false。Java脚本警报显示该值等于false(所以我认为它改变了),但当我转到下一页时,它仍然等于true(所以它没有改变)。

所以,我怎么能改变表单属性的值在java脚本,使表单记住它?

您可以添加一个隐藏字段来保存未选中的值

<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);
  }
}