0
我有兩個用戶進行選擇的日期選擇器。然後在選定的時間間隔中添加一個輸入文本框。我努力讓jQuery Validate插件爲生成的文本框工作。看起來好像只有第一個被驗證。jQuery驗證運行時控件
當頁面加載我添加了一個自定義的驗證方法,併成立了形式驗證:
$(document).ready(function() {
$.validator.addMethod("validHoursInDay", function(value, element) {
if (this.optional(element)) {
return this.optional(element);
}
var regex = /\d((\.|,)\d)?/;
var isDecimalNumber = regex.test(value);
if (isDecimalNumber) {
var parsedNumber = parseFloat(value.replace(",", "."))
return parsedNumber >= 0 && parsedNumber <= 24;
}
else {
return false;
}
});
$("#aspnetForm").validate({
debug: true,
onfocusout: false,
submitHandler: function(form) {
submitabscence();
},
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var message = 'Got some erros for you';
$.each(validator.errorList, function(index, value) {
value.element.style.borderColor = 'red';
});
ShowErrorBox(message);
}
}
});
});
創建文本框後,我選擇它們並添加規則
$("#week-overview :input").each(function() {
$(this).rules("add", {
validHoursInDay : true,
required: true,
messages: {
required: "Fill in a number",
validHoursInDay: "Valid Hours in Day"
}
});
});
只有第一個文本框似乎被驗證。
你能粘貼你的HTML代碼嗎? – Diego 2010-10-18 10:51:00
另外,您粘貼的第二個代碼在哪裏?在創建所有輸入之後它是否真的被執行?您是否試圖提醒$(「#week-overview:input」)。length? – Diego 2010-10-18 11:59:08
我能解決它。通過給每個生成的輸入一個唯一的名稱解決了問題! – BennyM 2010-10-23 08:00:51