2017-10-16 105 views
0

我想讓我的功能可供用戶使用,如果他們點擊按鈕,但如果他們也按下輸入。下面是例子:如果我點擊按鈕Make function onClick和onKeypress JQuery/Javascript?

$('#searchBtn').on('click', function searchUser(){ 
 
    $.ajax({ 
 
     type: 'POST', 
 
     url: 'Components/Application.cfc?method=findUser', 
 
     data: {'searchFldVal':searchFldVal}, 
 
     dataType: 'json' 
 
    }).done(function(obj){ 
 
     return true; 
 
     }else{ 
 
     return false; 
 
     } 
 
     }); 
 

 
     return false; 
 
     } 
 
    }).fail(function(jqXHR, textStatus, errorThrown){ 
 
     alert(errorThrown); 
 
    }); 
 
    } 
 
});
<form name="searchForm" id="searchForm" action="#" method="POST" onsubmit="searchUser()"> 
 
\t <div> 
 
\t \t <input type="text" name="searchFld" id="searchFld" size="24" maxlength="24" value="" title="Maximum size of the field is 24 characters." placeholder="Example: John, Miller" /> 
 
\t </div> 
 
\t <div> 
 
\t \t <input type="button" name="searchBtn" id="searchBtn" value="Search"/> 
 
\t </div> 
 
</form>

以上代碼工作正常,但如果我輸入幾個字母,然後按進入我的頁面將重新加載。該文件保存爲.cfm文件。我想在onClickonKeypress上運行searchUser()函數。如果有人知道如何實現這一點,請讓我知道。

+0

只是向上看,所提供的代碼有錯誤。 –

回答

3

由於您使用的是jQuery,請勿使用內聯事件處理程序。定義函數並調用它,當窗體被載於下文爲:

function searchUser(e) { 
 
    e.preventDefault(); 
 
    alert ("Do your ajax here instead of alert..."); 
 
} 
 

 
$("#searchForm").on("submit", searchUser);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form name="searchForm" id="searchForm" action="#" method="POST"> 
 
\t <div> 
 
\t \t <input type="text" name="searchFld" id="searchFld" size="24" maxlength="24" value="" title="Maximum size of the field is 24 characters." placeholder="Example: John, Miller" /> 
 
\t </div> 
 
\t <div> 
 
\t \t <input type="submit" name="searchBtn" id="searchBtn" value="Search"/> 
 
\t </div> 
 
</form>

注:

  • 移除了形式
  • 改變按鈕內嵌事件處理程序鍵入提交。
1

如果您使用AJAX與您的服務器進行通信,您可能希望完全離開表單的方法,操作和提交回調。這將導致頁面重新加載的默認提交行爲。相反,將偵聽器附加到搜索字段本身,即偵聽輸入按鍵。

$('#searchBtn').on('click', searchUser); 

$('#searchFld').on('keypress', function(e){ 
    e.preventDefault(); 
    if(e.code == 'Enter'){ 
     searchUser(); 
    } 
}); 


function searchUser(){ 
    // search for the user 
} 
相關問題