我有一個表單,我希望填寫所有字段。如果一個字段被點擊進入然後沒有填寫,我想顯示一個紅色的背景。使用jQuery檢查輸入是否爲空
這裏是我的代碼:
$('#apply-form input').blur(function() {
if ($('input:text').is(":empty")) {
$(this).parents('p').addClass('warning');
}
});
不管它的應用領域正在填寫或者不警告類。
我在做什麼錯?
我有一個表單,我希望填寫所有字段。如果一個字段被點擊進入然後沒有填寫,我想顯示一個紅色的背景。使用jQuery檢查輸入是否爲空
這裏是我的代碼:
$('#apply-form input').blur(function() {
if ($('input:text').is(":empty")) {
$(this).parents('p').addClass('warning');
}
});
不管它的應用領域正在填寫或者不警告類。
我在做什麼錯?
$('#apply-form input').blur(function()
{
if(!$(this).val()) {
$(this).parents('p').addClass('warning');
}
});
而且你不一定需要.length
或者看它是否>0
因爲一個空字符串的值爲false但無論如何,如果你想爲可讀性目的:
$('#apply-form input').blur(function()
{
if($(this).val().length === 0) {
$(this).parents('p').addClass('warning');
}
});
如果你確保它總是在textfield元素上運行,那麼你可以使用this.value
。你
$('#apply-form input').blur(function()
{
if(!this.value) {
$(this).parents('p').addClass('warning');
}
});
同時也應該注意到,$('input:text')
抓住多個元素,指定一個上下文或使用this
關鍵字,如果你只是想一個孤獨的元素的引用(只要是在上下文的後代/兒童一個文本框)。
我認爲如果你改變它會更好if(!$(this).val()):if(!$(this).val()&& $(this).val()!=「」) – alfasin 2012-04-15 22:02:21
$(this).val() 。長度<1 – Tomas 2014-04-30 09:37:27
YourObjNameSpace.yourJqueryInputElement.keyup(函數(e)中{ \t如果($。修剪($(本).VAL())){ \t \t //修整值爲真理 \t}否則{ \t \t //修剪的值是falsey \t} } – 2014-07-30 18:48:32
if ($('input:text').val().length == 0) {
$(this).parents('p').addClass('warning');
}
未捕獲TypeError:無法讀取未定義的屬性「長度」 – 2017-10-04 19:17:30
的:empty
僞選擇器可用於查看是否有元素包含沒有孩子的,你應該檢查該值:
$('#apply-form input').blur(function() {
if(!this.value) { // zero-length string
$(this).parents('p').addClass('warning');
}
});
考慮使用the jQuery validation plugin代替。它對於簡單的必需字段可能稍微有點矯枉過正,但它足夠成熟,可以處理你還沒有想到的邊緣情況(在我們碰到它們之前也不會有任何人)。您可以使用「required」類標記必填字段,在$(document).ready()中運行$('form')。validate(),這就是所需要的。
它甚至託管在微軟CDN也爲交貨快捷:http://www.asp.net/ajaxlibrary/CDN.ashx
每個人都有正確的想法,但我喜歡多一點明確的和修剪的值。
$('#apply-form input').blur(function() {
if(!$.trim(this.value).length) { // zero-length string AFTER a trim
$(this).parents('p').addClass('warning');
}
});
如果你不使用。長度
,那麼「0」的條目可以得到標記爲壞,和5位的條目可以得到標記爲OK沒有$ .trim。好運。
絕對正確。修剪是必要的,尤其是在使用挑剔的所見即所得編輯器(例如jWYSIWYG)時。 – 2010-10-29 22:18:26
我可以建議將值改爲val ---> if(!$。trim(this.val).length){//修剪後的零長度字符串 $(this).parents('p')。addClass ('警告'); } – 2014-03-20 11:43:04
'this.val'在那裏是'undefined'。它需要'$(this).val()' - 但是沒有跨瀏覽器的優勢,所以我爲了簡潔/速度而放棄了它。 – 2014-03-31 21:53:59
你可以嘗試這樣的事情:
$('#apply-form input[value!=""]').blur(function() {
$(this).parents('p').addClass('warning');
});
它將適用.blur()
活動只爲空值的輸入。
還有一件你可能想要考慮的事情,目前它只能添加警告類,如果它是空的,如何在表單不再空時再次刪除類。
這樣的:
$('#apply-form input').blur(function()
{
if(!$(this).val()) {
$(this).parents('p').addClass('warning');
} else if ($(this).val()) {
$(this).parents('p').removeClass('warning');
}
});
做它模糊是太有限了。它假設有關於表單域的重點,所以我更願意在提交時完成它,並通過輸入映射。經過多年的處理花式模糊,焦點等技巧,保持簡單的事情將產生更多的可用性。
$('#signupform').submit(function() {
var errors = 0;
$("#signupform :input").map(function(){
if(!$(this).val()) {
$(this).parents('td').addClass('warning');
errors++;
} else if ($(this).val()) {
$(this).parents('td').removeClass('warning');
}
});
if(errors > 0){
$('#errorwarn').text("All fields are required");
return false;
}
// do the ajax..
});
<script type="text/javascript">
$('input:text, input:password, textarea').blur(function()
{
var check = $(this).val();
if(check == '')
{
$(this).parent().addClass('ym-error');
}
else
{
$(this).parent().removeClass('ym-error');
}
});
</script>// :)
您可能還需要修剪空白。 – Raptor 2015-02-24 04:29:25
爲什麼沒有人提到
$(this).filter('[value=]').addClass('warning');
似乎更jQuery的喜歡我
這在jQuery 1.9+中不起作用,因爲它們改變了選擇器過濾器的工作方式.. http://jsfiddle.net/6r3Rk/ – Wick 2013-07-31 17:57:10
我建議$(this).not('[value]')。addClass('警告')爲1.9 http://jsfiddle.net/znZ9e/ – 2013-07-31 23:11:15
我相信只有測試字段是否以value屬性開始。它不會像驗證所需的那樣測試實際的表單字段值。 http://jsfiddle.net/T89bS/ ...沒有價值屬性的字段不管是否輸入了某些東西,都會被鮭魚拍打。 – Wick 2013-11-14 19:48:11
隨着HTML 5,我們可以用「需要」的一項新功能只需將其添加到標籤你想要的像:
<input type='text' required>
OP詢問jQuery – Raptor 2014-08-15 06:09:09
並且所有的瀏覽器都不支持這個...您必須添加js檢查和服務器端檢查 – 2014-10-14 15:44:21
問題標題「使用jQuery檢查輸入是否爲空」 – JoshYates1980 2017-04-07 16:37:37
以下是使用選定輸入的鍵控的示例。它還使用修剪以確保只有空白字符序列不會觸發真實反應。這是一個可用於開始搜索框或與此類功能相關的示例。
YourObjNameSpace.yourJqueryInputElement.keyup(function (e){
if($.trim($(this).val())){
// trimmed value is truthy meaning real characters are entered
}else{
// trimmed value is falsey meaning empty input excluding just whitespace characters
}
}
$(function() {
var fields = $('#search_form').serializeArray();
is_blank = true;
for (var i = 0; i < fields.length; i++) {
// excluded fields
if ((fields[i].name != "locale") && (fields[i].name != "utf8")) {
if (fields[i].value) {
is_blank = false;
}
}
}
if (is_blank) {
$('#filters-button').append(': OFF');
}
else {
$('#filters-button').append(': ON');
}
});
檢查所有字段爲空,並附加開或關Filter_button
function checkForm() {
return $('input[type=text]').filter(function() {
return $(this).val().length === 0;
}).length;
}
你也可以使用..
$('#apply-form input').blur(function()
{
if($(this).val() == '') {
$(this).parents('p').addClass('warning');
}
});
,如果你有懷疑的空間,然後嘗試..
$('#apply-form input').blur(function()
{
if($(this).val().trim() == '') {
$(this).parents('p').addClass('warning');
}
});
upvoted for trim – pun 2016-10-07 08:57:51
如果用戶已清除箱以及KeyUp事件將檢測(即backspace引發事件,但退格不會引發IE中的按鍵事件)
$("#inputname").keyup(function() {
if (!this.value) {
alert('The box is empty');
}});
[**:空僞類代表任何沒有子**的元素。只考慮元素節點和文本(包括空白)。註釋或處理指令不影響元素是否被認爲是空的。](https://developer.mozilla.org/en/docs/Web/CSS/:empty) – 2016-12-23 04:40:13