2012-07-14 17 views
1

我有這樣的代碼日期輸入不能爲null

$("#inputId").keyup(function(){ 
    alert($("#inputId").val()); 
}); 

我知道這是非常基本的(我不完全相信,以谷歌),但我想知道這是爲什麼警報總是零串。

編輯-

由於某種原因,這不包括在內。

我的意思是當我輸入字段時,警報從不顯示任何內容 - 如果這樣不準確,道歉,我的意思是警告顯示,但它總是顯示一個空字符串(所以它應該顯示日期字段在一個密鑰解除後,但不)。這仍然發生在下面的固定html。

EDIT(後續問題) -

酷,所以我接受了下面的答案之一。我想這樣做是爲了不管我輸入什麼內容,值都會在警報中出現(不僅僅當日期格式爲日期格式時)。我如何實現這一目標?

HTML代碼 -

<div id = "container"> 
     <input type = "date" id = "inputId" class = "inputClass"><br /></input> 
     <div id="deleteContainer"><span id="x">x</span></div> 
</div> 
+3

你有沒有在裏面放置一個值?這個代碼在'document.ready'回調中嗎?你有'id = inputID'的標記元素嗎? – Lix 2012-07-14 21:50:06

+2

您使用的是什麼HTML代碼? – alexy13 2012-07-14 21:51:30

+0

對不起 - 出於某種原因,整個事情沒有發佈 – praks5432 2012-07-14 21:51:46

回答

2

我創建了一個JSFiddle,以測試這一點,如果你使用,輸入類型日期然後它應該工作。

還將$('#inputId')更改爲$(this),這節省了額外的查詢並且更快。

$("#inputId").keyup(function(){ 
    alert($(this).val()); 
});​ 

正如您在小提琴中看到的那樣,使用帶日期字段的鍵位(在Chrome中)在日期正確之前不會返回值。

您不能更改日期字段的行爲,但您有兩個選項。

  • 將其更改爲輸入類型文本字段並添加自己的驗證。
  • 獲取用戶離開字段時的值(這是HTML中的'模糊'事件或jQuery中的'更改'事件),如果日期有效,則獲取該值。

這是一個fiddle,它演示了change事件而不是keyup事件。

更新改變了小提琴使用輸入日期

+0

輸入類型爲'date':http://jsfiddle.net/cV5ZT/1/,問題在HTML中被破壞。 – 2012-07-14 21:57:33

+1

@ GabrielSantos謝謝我將它改爲輸入類型日期。稍後查看更新後的問題。 – 2012-07-14 21:59:55

+0

不客氣。 – 2012-07-14 22:00:24

2

input被打破。更改

<input type = "date" id = "inputId" class = "inputClass"><br /></input> 
                 ^^^^^^^^^^^^^^^ 

<input type = "date" id = "inputId" class = "inputClass"> 
+1

如果這是真正的HTML,BTW,那斜槓不應該在那裏。它只對XHTML有用(HTML 5允許但忽略它),而且它實際上在HTML 4中是無效的。 – cHao 2012-07-14 22:04:40

+0

謝謝,我已經改變了,但它是HTML 5(因爲輸入日期),這就是爲什麼我要放棄輸入標籤。 – 2012-07-14 22:11:35

1

你已經打破HTML:

<input type="date" id="inputId" class="inputClass"><br /></input> 

應該是:

<input type="date" id="inputId" class="inputClass" /><br /> 
1

這工作得很好:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>Test</title> 
    </head> 
    <body> 
     <input id="inputId" type="text"/> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
     $("#inputId").keyup(function() { 
      console.log($("#inputId").val()); 
     }) 
     </script> 
    </body> 
</html> 
+0

嘿!歡迎來到Stack Overflow =) – 2012-07-14 22:06:00