2016-08-01 75 views
0

這裏是我的html代碼:jQuery的檢測充滿輸入

<label for="input">Name</label> 
<input type="text" id="input"/> 

我想讓腳本,隱藏標籤如果輸入有什麼填充它。我做到了這一點,但它沒有做任何事情。爲什麼?

if ($("input").val().length !== 0) { 
    $(this).siblings().hide(); 
} 

回答

0

您在實際使用時,$不指的是輸入字段(本).sibl ...
this默認爲Window
因爲它不圍繞一個功能或任何包裹。
另請參閱$('#input').siblings().hide()

-1

您正在使用<input type="text" id="input"/>$("input").val(),但它缺少「#」的ID選擇爲$("#input").val()

+0

這不是問題。 html元素也可以通過它們的標籤名稱來訪問。 –

+0

是的你是對的,這裏引起的問題是使用$(this)。 thanx指向它 –

0

您可以使用。每個函數來查看輸入和隱藏的標籤,如果使用下面是空的:

$("#input").each(function() { 
    if (!$(this).val()) { 
    $(this).siblings().hide(); 
    } 
}); 
+0

這不行的http://codepen.io/anon/pen/EyZPdV?editors=1010 –

+0

@Karolina Ticha它在你提供的codepen鏈接中工作。正如你所看到的,標籤「Name」是隱藏的。 – Josh