1

Enterキーをクリックすると2つのフォームがあるWebページがあります.JavaScript関数を呼び出して、ページに別のページを強制的にロードさせています.私のコードは

function SearchUser()
{
var text = document.getElementById("searchItem").value;
text = text == "" ? -1 : text;
var by = document.getElementById("listBy").value;   
var on="";
if(by==1)
{
    on="USERNAME";
}
else if(by==2)
{
    on="FIRSTNAME";
}
else if(by==3)
{
    on="EMAIL_ID";
}

gotoUrl="userlist.php?searchItem="+text+"&onSearch="+on; 
    alert(gotoUrl); 
window.navigate=gotoUrl;

}

$(document).ready(function()
{
 $("#frmUserListSearch").keyup(function(event)
 {
  if(event.keyCode == 13)
  { 
    SearchUser();
  }
 });

});

しかし、SearchUSer 関数が呼び出されたときに、ページはフォーム送信を行っています。アラートで正しい URL を取得しています。しかし、ページがブラウザにロードされていません。

何か案は ???

前もって感謝します

4

4 に答える 4

4
if (document.addEventListener) {
    document.getElementById('strip').addEventListener('keypress',HandleKeyPress,false);
} else {
    document.getElementById('strip').onkeypress = HandleKeyPress;
}

function HandleKeyPress(e) {
    switch (e.keyCode) {
        case e.DOM_VK_ENTER:
        if (e.preventDefault)
            e.preventDefault();
    else e.returnValue = false;
    }
}

元の質問の編集による編集:

あなたに必要なのは:

$(document).ready(function()
{
    $("#frmUserListSearch").keyup(function(event)
        {
            if(event.keyCode == 13)
            {     
                SearchUser();
                if (e.preventDefault)
                    e.preventDefault();
                else e.returnValue = false;
            }
        });
});

コメントを反映するように編集

于 2009-05-26T14:46:24.847 に答える
2

false を返すとうまくいくことがよくあります。

http://javascript.about.com/library/bldisdef.htm

于 2009-05-26T14:45:36.237 に答える
2

2つのお勧めがあります。まず、keyup の代わりに keydown イベントを使用します (より適切に送信する前に「enter」をキャッチします)。次に、SearchUser() 関数で、window.navigate の代わりに window.location を使用、他のページに移動します。

$(document).ready(function() {
  $("#frmUserListSearch").keydown(function(event) {
     if(event.keyCode == 13){    
       SearchUser();
       return false;
     }
  });
});

注: SearchUser() 関数内の「alert()」を削除することを忘れないでください。これにより、ページから移動する前にフォームが送信されます。

于 2009-05-26T15:11:35.343 に答える