【问题标题】:javascript's function not working second timejavascript函数第二次不起作用
【发布时间】:2012-03-27 13:41:19
【问题描述】:

我正在使用下面的function of javascript 来启用和禁用radio buttonstextbox,因为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


【解决方案1】:

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

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();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    相关资源
    最近更新 更多