2012-09-28 3 views
1

내 일반 HTML 페이지에서, 나는 키워드를 입력하고 ASP 페이지로 리디렉션하는 사용자를위한 텍스트 상자가있었습니다. 사용자가 제출 버튼을 클릭하면 자바 스크립트를 사용하여 키워드를 캡처합니다.HTML로 입력 키를 캡처하고 ASP 페이지로 리디렉션하는 방법은 무엇입니까?

사용자가 Enter 키를 누르면 HTML 페이지가 다시로드되고 오류 페이지가 반환됩니다. 어떻게 키 이벤트를 캡처 할 수 있습니까? asp 페이지로 리디렉션됩니다. 감사

내 자바 스크립트 코드를 다음과 같이 다음과 같은

function searching() {    
      var keywordsStr = document.getElementById('keywords').value; 
      var cmd = "http://xxx/SearchEngine/Searching.aspx?keywords=" + encodeURI(keywordsStr) ; 
      window.open(cmd); 
     } 

내 HTML 코드 :

<form name="form1" method="post" action="" > 
    <input name="keywords" type="text" id="keywords" size="50" > 
    <input type="submit" name="btn_search" id="btn_search" value="Search" onClick="javascript:searching(); return false;"> 
    <input type="reset" name="btn_reset" id="btn_reset" value="Reset"> 
    </form> 
+0

[A JSFiddle.net] (http://jsfiddle.net/bfuxx/) 귀하의 * 정확한 * 코드를 기반으로하고 문제없이 작동합니다 (대체 도메인 이름으로 인해 발음 사이트로 리디렉션됩니다). 'searching()'이 함수로 사용 가능합니까? Firebug for Firefox] (http://getfirebug.com) 또는 IE와 Chrome의 개발자 도구 (각각 F5)와 같은 것을 사용해 보셨습니까? – freefaller

답변

0

'action'속성이 비어 있습니다. 즉, HTML 페이지 자체에 게시됩니다 (기본적으로 다시로드 됨). 데이터를 게시하려면 ASP 페이지의 URL을 입력해야합니다.

<form name="form1" method="get" action="http://xxx/SearchEngine/Searching.aspx"> 
    <input name="keywords" type="text" size="50" > 
    <input type="submit" name="btn_search" value="Search"> 
    <input type="reset" name="btn_reset" value="Reset"> 
</form> 

당신은 당신의 자바 스크립트 기능을 모방 method="get"에 방법을 변경할 수 있습니다. 당신이 새 창을 만들 제출하려는 경우 , 양식에 대상의 속성을 추가 할 수 있습니다 제작 한

target="_blank" 
2

당신이 jquery를 사용하여 열려 경우,

당신이 좋아하는 뭔가를 할 수 ,

$("#keywords").keyup(function(e){ 
    if(e.keyCode == '13') 
    { 
     //enter key 
    } 
}); 
0

새 창에서 양식의 결과를 열어 보시지 않겠습니까? 당신이 당신의 코드에서 그랬던 것처럼 당신이 정말 탐지 할 경우

<form action="http://xxx/SearchEngine/Searching.aspx" method="get" target="_blank"> 



엔터,

<form action="http://xxx/SearchEngine/Searching.aspx" method="post" target="_blank"> 

하지만 당신은 GET 호출을 사용할 수 있습니다
난 후 사용하는 것을 선호 키 .. 귀하의 경우에는 다음을 사용하여 Enter 키와 관련된 이벤트를 발생시키지 않도록 전체 페이지에 onkeydown 이벤트를 사용하도록 제안합니다 (예 : 양식 제출).

document.onkeydown = checkKeycode 
function checkKeycode(e) 
{ 
    var keycode; 
    if (window.event) keycode = window.event.keyCode; 
    else if (e) keycode = e.which; 
    // alert("keycode: " + keycode); 
    if (keycode == 13) 
    { 
     alert('enter key is pressed: now do something'); 
    } 
} 
+0

고맙습니다 ... –

관련 문제