私のプログラムには、名前検索とID検索の両方の機能が含まれている必要があります。ユーザーが名前検索ボタンをクリックすると、名前検索の検証がトリガーされ、必要なテキストフィールドが空でないことを確認します。一方、ユーザーがID検索ボタンをクリックすると、 、ID検索検証がトリガーされ、別の必須テキストフィールドが空でないことを確認します。したがって、HTMLファイルには、次のjQueryおよびHTMLコードがあります。
$(document).ready(function() {
$('#submitIDSearch').bind('click', validateIDSearch);
$('#submitNameSearch').bind('click', validateNameSearch);
$('#searchLastName').bind('click', validateNameSearch);
$('#searchFirstName').bind('click', validateNameSearch);
$('#searchID').bind('click', validateIDSearch);
});
var validateNameSearch = function(event) {
var btnSrchLastName = getRef('searchLastName');
if (null != btnSrchLastName) {
var len = btnSrchLastName.value.length;
if (0 == len) {
alert('Last Name is a required field, please input Last Name.');
$('#searchLastName').focus();
return false;
}
}
return true;
}
var validateIDSearch = function(event) {
var btnSrchID = getRef('searchID');
if (null != btnSrchID) {
var len = btnSrchID.value.length;
if (0 == len) {
alert('ID is a required field, please input ID.');
$('#searchID').focus();
return false;
}
}
return true;
}
そして私は次のHTMLコードを持っています:
<form id="infoForm" name="checkAbsenceForm" method="post" action="absenceReport.htm">
<label class="q">ID * <input id="searchID" name="searchID" maxlength="9" /></label>
<input id="submitIDSearch" type="submit" value="Search ID"/>
<hr />
<label class="q">First Name <input id="searchFirstName" name="searchFirstName" maxlength="23"></label>
<br />
<label class="q">Last Name * <input id="searchLastName" name="searchLastName" maxlength="23" /></label>
<input id="submitNameSearch" type="submit" value="Search Name"/>
<hr />
</form>
コードは1つの問題を除いて正しく動作します。ユーザーがテキストボックスをクリックすると、クリックイベントが発生し、アラートメッセージボックスが事前に生成されます。
ユーザーがテキストフィールドから「Enter」キーを入力すると、「submit」ではなくクリックイベントがトリガーされるので、リスナーはクリックイベントにのみバインドできると思います。
テキストボックスをマウスでクリックすることによるイベントのトリガーを回避するための回避策があるかどうか尋ねてもよいですか?
どうもありがとう!