我有3個divs,每個輸入域和下一個按鈕都有。 我想編寫一個jQuery代碼片段,當單擊下一個按鈕時,它將檢查以確保與按鈕相同的div內的所有輸入字段都不爲null。檢查所有輸入字段已填寫與jQuery
我已經試過,沒有運氣但是我100%肯定它的錯,只是我不能在網上找到相關信息如下...
我有3個divs,每個輸入域和下一個按鈕都有。 我想編寫一個jQuery代碼片段,當單擊下一個按鈕時,它將檢查以確保與按鈕相同的div內的所有輸入字段都不爲null。檢查所有輸入字段已填寫與jQuery
我已經試過,沒有運氣但是我100%肯定它的錯,只是我不能在網上找到相關信息如下...
你可以使用filter
減少該組中的所有元素input
只有那些空的,並檢查剩下的length
屬性:
$(".next").click(function() {
var empty = $(this).parent().find("input").filter(function() {
return this.value === "";
});
if(empty.length) {
//At least one input is empty
}
});
請注意,上面代碼中的空白定義是一個空字符串。如果您想將空白處理爲空,則可能需要在比較之前修剪該值。
另請注意,不需要將this
傳遞給filter
函數中的jQuery。 DOM元素本身具有value
屬性,訪問該元素要快得多,而不是使用val
。
$('.next').click(function() {
var emptyInputs = $(this).parent().find('input[type="text"]').filter(function() { return $(this).val() == ""; });
if (emptyInputs.length) {
alert('Fail!');
}
});
$('.next').click(function() {
var inputs = $(this).parent().find('input[value=""]');
if (!inputs.length) {
// you have empty fields if this section is reached
}
});
這將表示即使沒有空輸入也會有空輸入,因爲它會查看'value' *屬性*而不是屬性。 – 2012-01-18 09:44:05
我不遵循?由於我對jQuery的理解不夠深入,你會介意解釋嗎? – 2012-01-18 09:47:33
您已使用屬性選擇器來查找「value」屬性等於空字符串的元素。 'value' *屬性*是在元素本身定義的:''。由於沒有一個'input'元素具有'value'屬性,所以你的代碼總是會說它們都是空的。 – 2012-01-18 09:50:52
啊,精彩,謝謝! – Liam 2012-01-18 09:41:25
沒問題,很高興我可以幫助:) – 2012-01-18 09:48:54
如何使用這個與輸入文本和選擇的形式? – 2017-05-03 21:31:58