2012-03-27 105 views
1

我使用以下function of javascript来启用和禁用radio buttonstextbox随着drop down的值更改。
它在开始时很好,但是当我点击提交按钮时,如果myindex = 8 or 9在提交时不起作用。
此时radio button filter[0] and filter[1]应该被禁用,并且textfield count应该被启用我在选择下拉菜单并同时点击提交按钮时调用了这个函数。
我不知道它为什么不工作。任何帮助。javascript的功能第二次不工作

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

    } 
+1

请显示相关的HTML并显示从提交操作中调用此函数的代码。 – jfriend00 2012-03-27 05:09:54

+0

@Nivesh:你怎么可能认为这是足够的信息让别人能够帮助你? – bernie 2012-03-27 05:12:35

+0

@bernie请原谅,我刚刚添加了相关的代码 – 2012-03-27 05:16:07

回答

0

这似乎很奇怪,你会提交表单,然后试图操纵等领域...

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