0

我有一个代码,在 JSF1.2 jsp 页面中使用 java 脚本,在复选框 m 禁用文本框 n 它工作正常。但是当数据库中有值时(例如_文本框中的“15”),如果我取消选中复选框_m调用禁用的JS代码并将“0.0”分配给文本框,当我点击保存它的保存“15”在 DB 中,我想要 DB 中的“0.0”(意味着它不更新 JS 代码或事件上的 bean)。

这就是元素 m 使用的_

<f:subview id="PaymentRuleView" rendered="#{login.employee}">
<h:form enctype="multipart/form-data" id="PaymentRuleForm">
<x:div id="PaymentRuleDiv" styleClass="separateBox">
<h:selectBooleanCheckbox id="partReminder" onclick="hideText(id)" />
                <h:outputText styleClass="separateMargin" value="For Part Payment" />
                <h:inputText id="partReminderText"
                    value="#{SelectedBean.payment_1_reminder}"
                    size="3">
                </h:inputText>
</x:div>
</h:form>
</f:subview>

这是 JS _

<script type="text/javascript">
    $(function(){
    var txt="PaymentRuleView:PaymentRuleForm:";
    var partTxt="partReminderText";
    var finalTxt="finalReminderText";
    if(document.getElementById(txt+partTxt).value>0)
    {
        document.getElementById(txt+"partReminder").checked=true;
        document.getElementById(txt+partTxt).readOnly = false;          
    }else{
        document.getElementById(txt+"partReminder").checked=false;
        document.getElementById(txt+partTxt).readOnly= true;
        document.getElementById(txt+partTxt).value = 0.0;
    }
    if(document.getElementById(txt+finalTxt).value>0 ){
        document.getElementById(txt+"finalReminder").checked = true;
        document.getElementById(txt+finalTxt).readOnly = false;
    }else{
        document.getElementById(txt+"finalReminder").checked=false;
        document.getElementById(txt+finalTxt).readOnly = true;
        document.getElementById(txt+finalTxt).value = 0.0;
    }
});

<script type="text/javascript">
    function hideText(e) {

        var value = document.getElementById(e).value;
        var textBox;
        if (e.indexOf("partReminder") != -1) {
            textBox = e.replace("partReminder", "partReminderText");
        } else {
            textBox = e.replace("finalReminder", "finalReminderText");
        }
        if (document.getElementById(e).checked!=true) {         
            document.getElementById(textBox).readOnly = true;
            document.getElementById(textBox).value = 0.0;
        }
        if (document.getElementById(e).checked==true) {
            document.getElementById(textBox).readOnly = false;
            document.getElementById(textBox).value = 0.0;
        }

    }
</script>

哪里有任何好友的想法或建议?谢谢你。

回答 我错过了“immediate=true”属性,该属性帮助我将更改的值设置为 bean,现在看起来像这样_

<h:inputText id="partReminderText"
                    value="#{SelectedBean.payment_1_reminder}"
                    size="3" immediate="true">
                </h:inputText>
4

0 回答 0