2010-04-12 2 views
2

제출 버튼이있는 양식이 있습니다. 상기 제출 버튼을 클릭하면, 내가 실행하는 함수를 호출 :양식이 Chrome/FF에 올바르게 제출되지만 IE/Safari에서 모두 실패합니다.

document.forms["request"].onsubmit(); 

발생해야 그렇다면, 그 태그의 onsubmit 방법은 트리거되어야한다이다. 이것은 Chrome/FF에서 제대로 작동하지만 IE/Safari가 onsubmit 기능을 무시하고 URL에 매개 변수 "address ="를 추가하기 만하면 양식을 제출하고 onsubmit 기능을 무시하는 것처럼 보입니다. 을 heres 폼에 대한 코드 : 당신은 여기에 양식을 테스트 할 수 있습니다

function addLocation(address) { 
    if (geocoder) { 
     geocoder.getLocations(address, function (point) { 
      if (!point) { 
       alert(address + " not found"); 
      } else { 
       if (point.Placemark[0].address != submittedString) { 
        submittedString = point.Placemark[0].address; 
        addRow(point.Placemark[0].address); 
        req = "addrequest?truck=" + "coolhaus&address=" + point.Placemark[0].address; 
        alert(req); 
        addRequest(req); 
        request.onreadystatechange = function() {} 
       } 
      } 
     }); 
    } 
} 

function addRequest(req) { 
    try { 
     request = new XMLHttpRequest(); 
    } catch (e) { 
     try { 
      request = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) { 
      alert("XMLHttpRequest error: " + e); 
     } 
    } 
    request.open("GET", req, true); 
    request.send(null); 
    return request; 
} 

:

http://la.truxmap.com/request?id=grillmastersla

덕분에 너무 많은

 <form id="request" method="get" onsubmit="addLocation(this.address.value); return false;"> 
     <br> 
     <label style="position:relative;left:5px;" for="address">Enter an intersection or address: 
     </label> 
     <br> 
     <br> 
     <input style="height:35px; width:300px;position:relative;bottom:1px;left:10px;" id="address" name="address" class="required address"/> 
     <a style="float:right;right:120px;position:relative;" class="button" onclick="submit();"> 
      <span>Submit Request 
      </span> 
     </a> 
     </form> 

어떤 다음은 기능 몇 가지 관련 JS입니다!

+0

동일한 엔진에서 빌드되는 Chrome과 Safari는 다르게 동작합니다. – Duncan

답변

3

함수에 "submit"이라는 이름을 지정하지 마십시오. 해당 이름의 양식에 이미 메서드가 있으므로 충돌 할 수 있습니다.

onsubmit 이벤트가 아니라 양식을 제출하기 위해 호출 할 수있는 방법은 submit입니다. 따라서 양식을 게시하는 코드는 다음과 같아야합니다.

document.forms["request"].submit(); 
관련 문제