javascript's函数第二次不起作用

javascript's function not working second time

本文关键字:函数 第二次 不起作用 javascript      更新时间:2023-09-26

drop down的值发生变化时,我使用下面的function of javascript来启用和禁用radio buttonstextbox
启动时很好,但当我单击提交按钮时,如果提交时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>

从submit开始,我调用js函数,从这里调用上面的js函数

function gotopage(actionname) { 
        document.form.action = actionname + ".action";
        document.form.submit();
        OnChange(document.form.filterValue);
    }

提交表单然后尝试操作字段似乎很奇怪。。。

function gotopage(actionname) { 
        document.form.action = actionname + ".action";
        document.form.submit();
        OnChange(document.form.filterValue);
    }

也许你需要的是:

function gotopage(actionname) { 
        OnChange(document.form.filterValue);
        document.form.action = actionname + ".action";
        document.form.submit();
    }