我有一個帶有表單的JSP頁面。使用onchange事件驗證文本字段?
的形式有很多領域,包括文本字段,單選按鈕等
我有被稱爲EMP ID一個特殊的領域。這是一個文本字段。
此emp ID必須是9個字符長。如果它小於或大於9個字符,那麼我需要向用戶發出警告消息,表明輸入的emp標識無效。
我已經寫了一個javascript方法來驗證這個字段是在該字段的事件onchange上觸發的。
現在,我已經將此字段設置爲自動查找。因此,用戶可以輸入前幾位數字,然後可以看到在emp ID字段中填充的現有empid列表。
這幾乎是汽車lokups的普遍工作方式。
問題是,當用戶嘗試從自動查找中選擇emp id時,由於鼠標指針移出文本字段,onchange事件被觸發。
這是錯誤的,我希望在從自動查找列表中選擇值或手動輸入值後觸發事件。
請幫忙。
我正在使用jquery自動查找。
以下是我的JSP代碼。
<script>
$(function() {
function validateEmpId(empId) {
empId = $.trim(empId);
empId = empId.replace(/\s/g, "");
if (empId.length != 9) {
alert("Please enter a valid Emp Id.");
}
}
$("#empId")
.autocomplete(
{
source : function(request, response) {
$.ajax({
url : "${findEmployeesByEmpIdIdUrl}"
+ "?t=" + getTimestamp()
+ "&hcAsOnDate=" + hcAsOnDate,
datatype : "json",
data : {
dbPrismId : request.term
},
success : function(data) {
response($.map(data, function(item) {
return {
label : item.dbPrismId,
value : item.dbPrismId,
id : item.id + "_"
+ item.forecast
};
}));
}
});
},
minLength : 1,
select : function(event, ui) {
var employeeId = ui.item.id;
},
open : function() {
$(this).removeClass("ui-corner-all").addClass(
"ui-corner-top");
},
close : function() {
$(this).removeClass("ui-corner-top").addClass(
"ui-corner-all");
}
});
});
</script>
<form action="save" method="POST" name="employeeForm" id="employeeForm">
<input type="text" name="empId" id="empId" maxlength="9" onchange="validateEmpId(this.value);" class="input-txt" />
</form>
什麼是你的自動查找代碼? – WolvDev 2012-07-09 12:39:35
@ ShogunArts.de。請參閱我已更新我的問題。 – ashishjmeshram 2012-07-09 12:42:55