我有一个问题,我不知道如何解决。我想在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/

10-12 04:31
查看更多