我在我的項目中使用了struts框架。已在我的JSP上使用了一個複選框,一個按鈕和一個文本框。以下是所有這些代碼。Struts - JSP - 使用Java腳本啓用/禁用基於狀態複選框的按鈕和文本框
<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事件中調用的函數.. 在Application上運行時,它只是給出第一個警報(「Inside Broadcast Validate」)..沒有其他警報提出。或文本框被禁用。我相信,它不會進入任何If/Else對。
使用的App Server是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");
}
請對此建議一些解決方案。
謝謝戴夫..我修改了代碼,並使用document.getElementById('idBrodcastCheckbox') 建議。它現在工作正常..非常感謝:) –
@NiravKhandhedia真棒,很高興你得到它的工作! –