2014-05-13 2 views
0

방문 페이지에 문의 양식이 있습니다. 사용자가 양식을 작성하면 URL을 통해 두 번째 방문 페이지로 정보가 전달됩니다. 두 번째 방문 페이지에는 URL에서 이름, 성 및 이메일을 가져와 해당 입력란에 삽입하는 자바 스크립트가 있습니다. 그러나 전자 메일은 두 번째 방문 페이지의 전자 메일 필드에 '@'기호 (bob % 40bob.com) 대신 % 40이 추가됩니다. 따라서 사용자가 양식을 제출하려고 할 때 유효성을 검사하지 않습니다.이메일 주소에 대한 검색어 매개 변수를 디코딩하는 방법

나는 URI를 디코딩해야한다는 것을 알고 있지만, 기존의 자바 스크립트에 그것을 어떻게 구현해야하는지 잘 모르겠습니다. 아래는 두 번째 방문 페이지에서 URL을 구문 분석하고 변수를 양식에 삽입하는 자바 스크립트입니다.

<script type="text/javascript"> 
function getQueryVariable(variable) { 
       var query = window.location.search.substring(1); 
       var vars = query.split("&"); 
       for (var i=0;i<vars.length;i++) { 
         var pair = vars[i].split("="); 
         if(pair[0] == variable){return pair[1];} 
       } 
       decodeURIComponent(vars); 
       return(false); 

     } 



     var firstName = getQueryVariable("firstname"); 
     var lastName = getQueryVariable("lastname"); 
     var userEmail = getQueryVariable("email"); 

     window.onload = function() { 
      document.getElementById('field[63]').value=firstName; 
      document.getElementById('field[64]').value=lastName; 
      document.getElementById('field[62]').value=userEmail; 
     } 

</script> 

양식 필드는 코드에 액세스하지 않고 위젯에 의해 생성됩니다.

답변

0

당신은 그래서 대신

if(pair[0] == variable){return pair[1];} 

사용

if(pair[0] == variable){return decodeURIComponent(pair[1]);} 
+0

당신의 도움에 대한 감사의 경기가 반환 후 디코딩하려고합니다! 그것은 완벽하게 작동했습니다! – ballr

관련 문제