可以與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