đây là một phần mở rộng của mã hữu ích joedotnot của. Nó có lẽ là overkill cho đa số người dùng asp.net, nhưng điều này đã giúp với một dự án mà các kết hợp khác nhau của các nhóm xác nhận đã được áp dụng khi gửi, tùy thuộc vào các nút đã được chọn.
var validationManager = function() {
// Manual client-side validation of Validator Groups
// an empty string('') is default - to validate controls without a validation group
var valGroups = [''],
returnObj = { //define methods
set: function (/*string argument list*/) {
valGroups = Array.prototype.slice.call(arguments);
return returnObj;
},
add: function (/*string argument list*/) {
var i;
for (i = 0; i < arguments.length; i++) {
if (valGroups.indexOf(arguments[i]) === -1) {
valGroups.push(arguments[i]);
}
}
return returnObj;
},
remove: function (/*string argument list*/) {
var i = 0, n = 0;
for (i = 0; i < arguments.length; i++) {
var n = valGroups.indexOf(arguments[i]);
if (n > -1) valGroups.splice(n, 1);
}
return returnObj;
},
validate: function() {
var i = 0,
summariesToDisplay = [];
for (; i < valGroups.length; i++) {
if (!Page_ClientValidate(valGroups[i])) { //this will display the contents of the validator
summariesToDisplay.push(valGroups[i]);
}
}
if (!summariesToDisplay.length) { return true; }
for (i = 0; i < Page_ValidationSummaries.length; i++) { //make relevant summaries visible
if (summariesToDisplay.indexOf(Page_ValidationSummaries[i].validationGroup || '') > -1) {
Page_ValidationSummaries[i].style.display = "inline"; //"none"; "inline";
}
}
return false;
}
};
if (arguments.length > 0) {
returnObj.set.apply(null, arguments);
}
return returnObj;
}
sau đó trong xử lý sự kiện khác nhau:
//set up a global object
var validateOnSubmit = validationManager('','BMIvalGrp');
//within a radio click handler
validateOnSubmit.add('weightValGrp','ageValGrp')
.remove('BMIvalGrp');
//added to submit button handlers
validateOnSubmit.validate();
Tôi không thể trả lời câu hỏi này vì tôi chưa thử. Nhưng các trình duyệt tính hợp lệ có thể được kích hoạt/quản lý ở phía máy khách. Hãy thử đọc http://msdn.microsoft.com/en-us/library/aa479045.aspx này mặc dù ngày 2002, nó đã giúp tôi với vấn đề xác nhận của tôi gần đây. –
ok, cảm ơn cho liên kết msdn, như bạn đã nói nó là ngày nhưng tiếng ồn nền tốt (thông tin), đã giúp tôi trên đường đến một câu trả lời. – joedotnot
tôi có điều kiện tương tự vấn đề của tôi là tóm tắt xác nhận cuộc gọi hai lần nếu cả hai nhóm không thành công. –