2016-11-08 7 views
0

이것은 쉽게 볼 수없는 쉬운 수정 일 수 있지만 기본 전송 영역 기능을 설정하려고합니다. 배달 구역에있는 경우 zipcode를 제출 한 후 우리 구역에 있다는 경고가 표시되고 확인을 클릭하면 예약 페이지로 이동합니다. 그렇지 않으면, 그들이 구역 밖에 있다고. 나는 예약 페이지에 걸리는 경고에 대한 onclick 요구를 얻는 것처럼 보이지 않습니다. 문제는 클릭에 페이지를 새로 고침 제출 버튼처럼 (추신 : Squarespace하게 모든 javacript) 코멘트에서자바 스크립트로 새 웹 사이트 경고 받기 onclick

<script type="text/javascript"> 

function IsValidZipCode() { 

    var zip = document.getElementById('txtZip').value; 
    var ZipArray = ["60543", "60188"]; 
    var isValid = ZipArray.indexOf(zip); ; 
    (isValid); 
    if (isValid >= 0){ 
     alert ('Nice! go ahead and book!') 
     // NEED TO LINK TO NEW WEBPAGE 
     return true; 

    } 
    else { 
     alert('Sorry, we do not offer delivery here at this time'); 
     return false; 
    } 
} 
</script> 
<form> 
Please Enter Zip Code: <input id="txtZip" name="zip" type="number" /> 
<input onclick="IsValidZipCode()" id="Button" type="submit" value="Submit"/> 
</form> 
+2

당신이 퍼팅 시도 되세요'window.location.href = 'yoururl.com'' 코멘트는 어디? – Kolby

+0

예, 예약 페이지로 이동하지 않고 현재 웹 페이지를 다시로드합니다. – KNages

+0

제출 버튼이므로 제출하십시오. 이를 방지하기 위해 이벤트 처리 함수의 맨 아래에'false를 반환 할 수 있습니다. HTML'action' 속성을 생략했기 때문에이 경우 동일한 페이지로 제출하고 있습니다. 하지만 실제로, 당신은 AJAX의 관행에 빠져야합니다. – PHPglue

답변

0

, 그것은 소리. 이를 방지하려면 e.preventDefault를 사용해야합니다.

<input onclick="IsValidZipCode(event)" id="Button" type="submit" value="Submit"/> 

function IsValidZipCode(event) { 
    if (isValid >= 0){ 
     event.preventDefault; 
     alert ('Nice! go ahead and book!') 
     window.location.href = 'yoururl.com' 
    } 
} 

여기에 좋은 참고가있다 : preventDefault inside onclick attribute of a tag

https://jsfiddle.net/yLyvt30y/

+0

여전히 작동하지 않는 것 같습니다. 제출 버튼을 일반 버튼으로 변경해야합니까? – KNages

+0

방금이 방법을 사용하면 양식을 제출할 수 없다는 것을 알았습니다. 이것은 양식의 유효성을 검증 한 후 백엔드에서 수행해야합니다. 그렇지 않으면 AJAX를 사용하여 양식을 제출할 수 있습니다. – Kolby

+0

유효한 zipcode를 입력하고 제출을 클릭하면 해당 기능이 현재 실행됩니다. 해당 알림이 팝업으로 나타나면 해당 문제가 발생합니다. 알림에서 확인을 클릭하면 새 페이지로 이동합니다. 이해가 되니? 나는 완성하기 위해 아약스가 필요 없다고 생각한다. – KNages