我有一个代码,在 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>