可以与jQuery到达各种输入,使用选择器等输入[名称= CAMPAIGNNAME]
参见实施例和小提琴的下方。
$(document).ready(function() {
$("#submitCreateCampaignForm").submit(function(e) {
var $form = $(this);
var errors = 0;
var campaignName=$form.find("input[name=campaignName]").val()
if (!errors && campaignName == "") {
alert("nono, campaignType empty");
errors++;
}
var fromDate=$form.find("input[name=fromDate]").val()
if (!errors && fromDate == "") {
alert("nono, fromDate empty");
errors++;
}
if (!errors && !isValidDate(fromDate)) {
alert("nono, fromDate "+fromDate+" not a valid date");
errors++;
}
// ...
if (errors) e.preventDefault();
});
});
// http://stackoverflow.com/questions/14636536/how-to-check-if-a-variable-is-an-integer-in-javascript/14794066#14794066
function isInt(value) {
if (isNaN(value)) return false;
var f=parseFloat(value);
return f==(f|0);
}
// http://stackoverflow.com/questions/276479/javascript-how-to-validate-dates-in-format-mm-dd-yyyy
function isValidDate(date) {
var matches = /^(\d{2})[-\/](\d{2})[-\/](\d{4})$/.exec(date);
if (matches == null) return false;
var d = matches[2];
var m = matches[1] - 1;
var y = matches[3];
if(y>2100 || y<1900) return false; // accept only recent & not too far years
var composedDate = new Date(y, m, d);
return composedDate.getDate() == d &&
composedDate.getMonth() == m &&
composedDate.getFullYear() == y;
}
https://jsfiddle.net/ukfw3xo9/15/
这仅测试两个领域是不是空的,有效日期,但你可以测试任何你想用简单的JS
在测试前的!errors &&
仅仅是只警告第一个错误,不要一次显示所有错误(意思是“如果你还没有报告过错误......”)。
UPDATE
设置红色字段:
https://jsfiddle.net/ukfw3xo9/16/
CSS:
.red {background-color:red;}
或(仅限边框)
.red {border:1px solid red;}
JAVASCRIPT:
$(document).ready(function() {
$("#submitCreateCampaignForm").submit(function(e) {
var $form = $(this);
var errors = 0;
$form.find("input").removeClass("red");
var campaignName=$form.find("input[name=campaignName]").val()
if (!errors && campaignName == "") {
$form.find("input[name=campaignName]").addClass("red");
errors++;
}
var fromDate=$form.find("input[name=fromDate]").val()
if (!errors && fromDate == "") {
$form.find("input[name=fromDate]").addClass("red");
errors++;
}
if (!errors && !isValidDate(fromDate)) {
$form.find("input[name=fromDate]").addClass("red");
errors++;
}
// ...
if (errors) e.preventDefault();
});
});
// http://stackoverflow.com/questions/14636536/how-to-check-if-a-variable-is-an-integer-in-javascript/14794066#14794066
function isInt(value) {
if (isNaN(value)) return false;
var f=parseFloat(value);
return f==(f|0);
}
// http://stackoverflow.com/questions/276479/javascript-how-to-validate-dates-in-format-mm-dd-yyyy
function isValidDate(date) {
var matches = /^(\d{2})[-\/](\d{2})[-\/](\d{4})$/.exec(date);
if (matches == null) return false;
var d = matches[2];
var m = matches[1] - 1;
var y = matches[3];
if(y>2100 || y<1900) return false; // accept only recent & not too far years
var composedDate = new Date(y, m, d);
return composedDate.getDate() == d &&
composedDate.getMonth() == m &&
composedDate.getFullYear() == y;
}
您现在可以卸下所有的(所有的细胞都会变成红色不仅是第一个) “的错误& &!”。
此代码是丑了一点,只是为了显示这个概念,一个更清洁的方式是让输入一次:
var $fromDateInput=$form.find("input[name=fromDate]");
var fromDateValue=$fromDateInput.val();
if (fromDateValue == "") {
$fromDateInput.addClass("red");
errors++;
}
你说的是jQuery插件验证或使用jqeury和JavaScript要自定义的验证? –
创建您自己的验证器, –
您可以使用REGEX模式在点击提交按钮时验证表单数据。检查这个链接https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions – WisdmLabs