【发布时间】:2012-03-27 13:41:19
【问题描述】:
我正在使用下面的function of javascript 来启用和禁用radio buttons 和textbox,因为drop down 的值发生了变化。
启动时很好,但是当我单击提交按钮时,如果myindex = 8 or 9 在提交时不起作用。
此时 radio button filter[0] and filter[1] 应该被禁用,textfield count 应该被启用 我在选择下拉菜单和单击提交按钮时调用了这个函数。
我不知道为什么它不起作用。任何帮助。
function OnChange(dropdown) {
var myindex = dropdown.selectedIndex;
document.form.filter[0].disabled = false;
document.form.filter[1].disabled = false;
if (myindex == 8) {
document.form.filter[0].disabled = true;
document.form.filter[1].disabled = true;
document.form.count.disabled = false;
document.form.submit.disabled = false;
} else if (myindex == 9) {
alert("in ALL");
document.form.filter[0].disabled = true;
document.form.filter[1].disabled = true;
document.form.count.disabled = true;
document.form.submit.disabled = false;
alert(document.form.filter[0].disabled);
}
else {
document.form.filter[0].disabled = false;
document.form.filter[1].disabled = false;
document.form.count.disabled = true;
document.form.submit.disabled = false;
}
}
下面是我的 HTML 代码。
<s:form action="crInquiry" name="form" >
<table align="center" width="1020">
<tr>
<td>Batch Id : <s:property value="batchId" />
<fieldset
style="background-color: #F7F9F3; margin: 2px; padding: 8px; -moz-border-radius: 5pt; border: 1px solid #A7CBE3;">
<legend class="field_label">
<strong>Inquiry Log Status</strong>
</legend>
<table border="0" id="main_table1" cellpadding="5" width="1010"
cellspacing="5" align="center">
<tr style="height: 5px;">
<td width="300" height="2" align="left" colspan="0"><s:hidden
name="batchId" id="batchId"
onfocus="OnChange((this.form.filterValue));"
value="%{ batchId }"></s:hidden> <s:select
cssClass="bulkSelect" name="filterValue"
label="Search Criteria" required="true" theme="css_xhtml"
labelposition="bottom" tabindex="2" list="headerList"
onchange="OnChange(this.form.filterValue);" />
</td>
<td width="180"><s:radio name="filter"
requiredposition="right"
list="#{'STATUS_FILTER_START':'START','STATUS_FILTER_END':'END'}"
label="Stage" labelposition="right" theme="css_xhtml"
tabindex="9" labelposition="bottom"></s:radio>
</td>
<td width="50" height="2"><s:textfield disabled="true"
value="0" name="count" size="2" labelposition="1"
theme="css_xhtml"></s:textfield>
</td>
<td width="180"><s:radio name="order"
requiredposition="right" list="#{'ASC':'ASC','DESC':'DESC'}"
label="Order" labelposition="right" theme="css_xhtml"
tabindex="9" labelposition="bottom"></s:radio>
</td>
</td>
<td width="50"><s:submit theme="css_xhtml" value="Filter"
align="left" onclick="gotopage('FilteredInquiryLog');"></s:submit>
</td>
<td width="59"><s:submit theme="css_xhtml" value="Details"
onclick="gotopage('crInquiry')"></s:submit></td>
</tr>
</table>
</fieldset>
</td>
</tr>
</table>
</s:form>
并从提交中调用 js 函数,从它调用上述 js 函数的位置
function gotopage(actionname) {
document.form.action = actionname + ".action";
document.form.submit();
OnChange(document.form.filterValue);
}
【问题讨论】:
-
请显示相关的 HTML 并显示从提交操作中调用此函数的代码。
-
@Nivesh:你怎么可能认为这是足够的信息让某人能够帮助你?
-
@bernie 请原谅,我刚刚添加了相关代码
-
您确实应该尝试减少代码量来重现该问题。当你有这么多事情要做时,很难在几分钟内理解你想要做什么。
-
@DmitryB 我认为你是对的我会减少代码并将其作为一个新问题发布。
标签: javascript html jsp struts2