2012-12-05 9 views
1

이 바이올린은 완전한 코드 집합이 아닙니다. 그러나 그것은 문제가있는 고립 된 코드입니다.onClick은 실행되지 않습니다. chrome/safari

모든 IE 버전에서 작동하며 Safari/Chrome에서 작동하지 않습니다. 특히 저는 이것을 IPAD에서 작동 시키려고합니다. Select 버튼이 눌러지며, 함수는 아무 것도하지 않을 것이고, 본질적으로 그곳에 머물러있을 것입니다 ... 누구든지 어떤 제안이 있습니까?

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 : 당신이

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

가 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

먼저

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

하지만이 요소에는 할당 된 ID가 없습니다. 수 확신 브라우저

document.glStatementForm... 

은 아마도 ID 또는 이름이 "glStatementForm"와 형태를 의미한다, 당신은

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

둘째를 필요로 그것을 발견 할 것이다. 그러나 문서 네임 스페이스에 의도적으로 추가하지 않는 한이 방법을 사용하는 것은 일반적인 방법이 아닙니다. 당신이 glStatementForm의 id 속성을 설정하려면 HTML에서 확인도

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

과 : 나는 양식 필드를 액세스하는 대부분의 크로스 브라우저 호환 방법은 무엇인지, 그러나 아마 같은 아니에요.

+0

Thanks Stuart. id = "statementGroups"추가로 인해 문제가 해결 된 것처럼 보입니다. 건설적인 응답에 감사드립니다. –

관련 문제