1. 程式人生 > >jquery驗證後臺資料庫中是否有重複資料,比如註冊的時候需要

jquery驗證後臺資料庫中是否有重複資料,比如註冊的時候需要

js

// 定義績效專案新增表單的驗證規則

$("#itemAddForm").validate({
ignore : "",
rules : {
"obj.name" : {
required : true,
maxlength: 10,
remote : {
async : false,
url : ctx + "/tere/kpi-itemNameCheck.do?random=" + Math.random(),
type : "post",
dataType : "json",
data : {
name : function() {
return $("#itemAddForm").find("[name='obj.name']").val();
}
}
}
},
"obj.score" : {
required : true,
digits:true,
range:[1,100]
}
},
messages : {
"obj.name" : {
required : "名稱不能為空",
maxlength : "名稱不能超過10個字元(漢字算一個)",
remote : "名稱已定義"
},
"obj.score" : {
required : "分值不能為空",
digits:"分值只能為數值型別",
range:"分值只能定義1-100之間"
}
},
highlight : function(element) {
$(element).closest('.form-group').addClass('has-error');
},
success : function(label) {
label.closest('.form-group').removeClass('has-error');
label.remove();
}

});

module

/**
* 驗證績效專案名稱是否重複
* @param name
* @return
*/
@At("/tere/kpi-itemNameCheck")
public Object itemNameCheck(String name, Integer id) {
return kpiService.itemNameCheck(name, id);
}

service

/**
* 驗證績效專案名稱是否重複服務
* @param name
* @return
*/
public boolean itemNameCheck(String name, Integer id) {
// 新增時的唯一性校驗
if (null == id || id == 0) {
int count = dao().count(KpiItem.class, Cnd.where("name","=",name));
return count == 0;

// 編輯時的唯一性校驗
else {
int count = dao().count(KpiItem.class, Cnd.where("name","=",name).and("id","!=", id));
return count == 0;
}

}