Я использую Struts Framework в своем проекте.Использовали один флажок, одну кнопку и одно текстовое поле на моем JSP.Ниже приведен код для всех них.
<html:text name="FormBean" styleId = "codeERText" property="codeER" onFocus="change_classe_byId(this,'on');" onBlur="change_classe_byId(this,'off');" styleClass="off" maxlength="5"/>
<input type="button" styleId = "deduireButton" name = "deduireButton" id = "deduireButton" value="<bean:message key="Property.deduire"/>" onClick="javascript:validate('DEDUIRE');">
<html:checkbox styleId="idBrodcastCheckbox" property="sentToAll" name="FormBean" onChange="javascript:broadcastValidate();" />
Требование: когда флажок установлен, он должен отключить кнопку, текстовое поле и наоборот.
Ниже приведена функция, котораявызывается в onChange Event of Checkbox. При запуске этого приложения оно просто выдает первое предупреждение («Inside Broadcast Validate»). Никаких других предупреждений не возникает. Ни кнопка, ни текстовое поле не отключены.Я полагаю, он не входит ни в одну из пар If / Else.
Используемый сервер приложений - Weblogic 8.1.
function broadcastValidate(){
alert("Inside Broadcast Validate");
if(document.forms[0].idBrodcastCheckbox.checked == true)
{
alert("checked true");
document.forms[0].codeERText.disabled = true;
document.forms[0].deduireButton.disabled = true;
}
else
{
alert("checked false");
document.forms[0].codeERText.disabled = false;
document.forms[0].deduireButton.disabled = false;
}
alert("First If over");
if(this.document.FormBean.getElementById("idBrodcastCheckbox").checked == true)
{
alert("checked true 2");
this.document.getElementById("codeERText").disabled = true;
this.document.getElementById("deduireButton").disabled = true;
}
else
{
alert("checked false 2");
this.document.getElementById("codeERText").disabled = false;
this.document.getElementById("deduireButton").disabled = false;
}
alert("Second If over ");
if(document.forms[0].sentToAll.value == true)
{
alert("checked true - Sent to All");
document.forms[0].codeERText.disabled = true;
document.forms[0].deduireButton.disabled = true;
}
else
{
alert("checked false - Sent to All");
document.forms[0].codeERText.disabled = false;
document.forms[0].deduireButton.disabled = false;
}
alert("Third If over - Exiting Broadcast Validate");
}
Пожалуйста, предложите какое-то решение для этого.