2012-12-05 66 views
1

這個小提琴不是完整的代碼集。然而,這是我遇到問題的孤立代碼。onClick不會觸發,chrome/safari

這適用於所有版本的IE,並且不適用於Safari/Chrome。具體來說,我試圖讓這個工作在IPAD上。選擇按鈕將推動,該功能將不會做任何事情,並將基本上卡在那裏...任何人有任何建議?

http://jsfiddle.net/Eh9QC/

function selectStatements(f) 
      { 
      var selectedArray = new Array(); 
      var selObj = document.getElementById('statementGroups'); 
      var i = 1; 
      var count = 0; 
      for (i=0; i<selObj.options.length; i++) 
       { 
       if ((selObj.options[i].selected) && count<20) 
        { 
        selectedArray[count] = selObj.options[i].value; 
        count ++; 
        } 
       } 
      f.chosenStatements.value = selectedArray; 
      document.glStatementForm.glaction.value = "updateChosenList"; 
      document.glStatementForm.action="glstsend.shtml"; 
      document.glStatementForm.method="POST"; 
      document.glStatementForm.submit(); 
      } 
    </script>​​​ 

HTML:

 #IF EXPR = (clientState == "setList")     --> 
    <div id="openBox2"> 
       <tr> 
        <td VALIGN="top"><B>Statements:</B> 
        <td VALIGN="top"> 
        <SELECT NAME="statementGroups" SIZE=10 MULTIPLE>            <!-- 
           #SET NAME = ldx VALUE = 0               --><!-- 
           #WHILE EXPR=(ldx < disp_list_count)            --> 
             <OPTION VALUE= "(*disp_dropdown_value[ldx]*)">(*disp_dropdown_text[ldx]*)  <!-- 
             #SET NAME = ldx VALUE = ldx + 1           --><!-- 
           #ENDWHILE                   --> 
        </SELECT> 

       <tr> 
        <td> <BR /> 
        <td> <INPUT TYPE=BUTTON VALUE="Select" STYLE="font:8pt Arial" ONCLICK="selectStatements(this.form);"> 
                     <!-- 
       #ENDIF             --> 

      </table> 
    </div> 
    ​ 
+1

我的天啊,誰寫的代碼? –

+0

幾個html標記丟失:'

','','' –

回答

1

首先,你必須

var selObj = document.getElementById('statementGroups'); 

可能指的是該元素在HTML

<SELECT NAME="statementGroups" SIZE=10 MULTIPLE> 

但這個元素沒有任何id分配。有信心的瀏覽器會發現,你需要

<select name="statementGroups" id="statementGroups" size="10" 
multiple="multiple"> 

其次,

document.glStatementForm... 

大概是指與ID或名字「glStatementForm」的形式。但是這不是通常的方式來引用它,除非你有意將它添加到文檔名稱空間。我不知道是什麼訪問表單字段的大多數跨瀏覽器兼容的方式是,但可能是這樣的:

var glsForm = document.getElementById('glStatementForm'), 
glsForm.elements['action'].value = "updateChosenList"; 
glsForm.action = "glstsend.shtml"; 
glsForm.method = "POST"; 
glsForm.submit(); 

,並且確保在您設置的glStatementForm的id屬性的HTML。

+0

Thanks Stuart。看起來像id =「statementGroups」加法解決了我的問題。我讚賞建設性的迴應。 –