我有一个代码在JSF1.2 jsp页面中使用java-script, 在复选框m禁用文本框n其工作正常。 但是当DB中有值时(示例_“15”在文本框中),如果我取消选中复选框_ m调用JS代码禁用加上为文本框分配“0.0”,当我点击保存其在DB中保存“15”并且我想要DB中的“0.0”(意味着它不是JS代码或事件上的更新bean)。 / p>
这是使用_
的元素<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>