如果可能的話,找一個簡單的方法來辨別你需要驗證的領域裏,如Tim Bolton建議用ID上的元素屬性,或者通過CSS類像下面(即「needs6」級):
<form>
<label>Test</label><input value="1" type="text" class="check">
<label>Test</label><input value="1" type="text" class="check">
<label>Test</label><input value="1" type="text" class="check">
<label>6 digit</label><input value="1" type="text" class="check needs6">
<label>6 digit</label><input value="1" type="text" class="check needs6">
<label>Test</label><input value="1" type="text" class="check">
<input type="submit" />
</form>
然後你的jQuery選擇變得簡單得多(即,$("input.needs6")
)。
一旦你選擇了你的輸入,有很多方法來驗證它們。如果你想看到這個動作
$(document).ready(function() {
var testFor6 = function() {
var allHave6 = true;
$("input.needs6").each(function() {
var input = $(this);
var value = input.val();
if (!value.match(/\d{6}/g)) {
allHave6 = false;
input.addClass('doesNotHave6');
} else {
input.removeClass('doesNotHave6');
}
});
return allHave6;
};
$('input[type="submit"]').click(function (e) {
var allHave6 = testFor6();
if (!allHave6) {
e.preventDefault(); //Cancel event-bubbling.
}
return allHave6; //Prevent form submission when false.
});
});
,彈出它爲http://jsfiddle.net/和測試它,儘管你可能想這與一些樣品的CSS類結合起來,看它的工作: 就個人而言,我會用下面的方法。下面的示例。
.needs6 {background-color: yellow;}
.doesNotHave6 {background-color: red;}
希望這有助於
皮特
附錄:
你的意思是......空間
<form>
<label>Test</label><input value="1" type="text" class="check">
<label>Test</label><input value="1" type="text" class="check">
<label>Test</label><input value="1" type="text" class="check">
<!-- here? --><label><!-- here? -->6 digit</label><!-- here? --><input value="1" type="text" class="check needs6" value="<!-- here? -->">
<label>6 digit</label><input value="1" type="text" class="check needs6">
<label>Test</label><input value="1" type="text" class="check">
<input type="submit" />
</form>
請澄清。
當然可以!
簡單地改變輸入迴路功能,下面...
$("input.needs6").each(function() {
var input = $(this);
var value = input.val();
//You can use this to trim.
var trimmedValue = value.replace(/\s\s*$/, '').replace(/^\s\s*/, '');
//You can use this to find leading whitespace.
var hasLeadingSpaces = value.match(/^\s\s*/, '');
//You can use this to find trailing whitespace.
var hasTrailingSpaces = value.match(/\s\s*$/, '');
if (hasLeadingSpaces) {
//Do something
}
if (hasTrailingSpaces) {
//Do something
}
//Check original value
if (!value.match(/\d{6}/g)) {
allHave6 = false;
input.addClass('doesNotHave6');
} else {
input.removeClass('doesNotHave6');
}
//Check trimmed value
if (!trimmedValue.match(/\d{6}/g)) {
allHave6 = false;
input.addClass('doesNotHave6');
} else {
input.removeClass('doesNotHave6');
}
});
你能提供一個更完整的示例的任何部分,包括樣本HTML結構,你到底要測試什麼?你想驗證用戶只在輸入字段中提供了6位數字嗎?順便說一句,jQuery只是一個庫,JavaScript是語言。 –
某些字段有6位數字標籤,需要檢查字段中的6位數字。這甚至是可能的。 – pcproff
爲什麼不使用驗證插件 - > http://bassistance.de/jquery-plugins/jquery-plugin-validation/ < - 有很多選項,包括輸入的長度 – ManseUK