2010-08-22 58 views
2

我們在頁面上的一些input元素:jQuery的輸入值

<input type="text" class="lovely-input" name="number" value="" /> 

用戶類型許多,他希望看到的。

如何查看此輸入值。有一些選擇?它們是:

  1. 如果用戶鍵入的數字超過100,改變輸入的值(對飛,不刷新頁面),以100
  2. 如果他類型的數字小於1,把值設爲1

回答

6

使用keyup事件,而不是:

$(".lovely-input").keyup(function(e) { 
    var $this = $(this); 
    var val = $this.val(); 
    if (val > 100){ 
     e.preventDefault(); 
     $this.val(100); 
    } 
    else if (val < 1) 
    { 
     e.preventDefault(); 
     $this.val(1); 
    } 
}); 

這裏有一個working fiddle

+0

whats doing preventDefault()? – James 2010-08-23 11:37:52

+0

它可以防止輸入最後一個鍵擊中的值。 – GenericTypeTea 2010-08-23 11:49:10

+0

似乎preventDefault()不起作用 – James 2010-08-25 07:37:53

0

jquery validation plugin將處理您的最大和最小值要求。

至於變化的輸入:

$("#number_input").change(function() { 
    if($("#number_input").val() < 1) 
    $("#number_input").val(1); 
}); 
+0

這不起作用 – James 2010-08-23 05:19:00

+0

發佈您的代碼,這個概念是正確的。您可能需要在輸入元素的val中調用parseInt,並且在某些瀏覽器中,change元素不會觸發,直到元素失去焦點。 – jdc0589 2010-08-23 05:38:05

+0

應該直接輸入,而不僅僅是放鬆焦點 – James 2010-08-23 07:31:17