2014-06-10 18 views
4

我有一個輸入型數字輸入型號如何檢查是否改變事件中鍵向上或按鍵向下箭頭按下(鼠標點擊)

<input class="item" type="number" min="1" max="500" step="1" value="1" /> 

現在檢查這個元素,我用

的變化
$(".item:input").bind('change', function (e) { 
     //doing something 
} 

現在這個函數中我如何檢查是否向上或向下按下

我尋找類似以下

這個元素的箭頭
$(".item:input").bind('change', function (e) { 
    if(this up arrow pressed){ 
      print(up); 
    }else{ 
      print(down); 
    } 

} 

我該怎麼做?

回答

4

您可以將舊值輸入的屬性。試試這個

$(document).ready(function(){ 

    // assign oldVal data attribute at once on document ready 
    $(".item:input").data('oldVal', $(".item:input").val()); 

    $(".item:input").change(function(){ 
      //get the newVal on change 
      var newVal = $(this).val(); 
      // get the oldVal from data attribute 
      var oldVal = $(this).data('oldVal'); 
      // do stuff you need here 
      if (newVal > oldVal) { 
       //UP arrow pressed 
      } else { 
       //DOWN arrow pressed 
      } 
      console.log('newVal is ' + newVal + ' oldVal was ' + oldVal); 
      //store the newVal as the oldVal for the next change 
      $(this).data('oldVal', newVal) 
     }) 
     .focus(function(){ 
      // assign oldVal data attribute on input focus 
      $(this).data('oldVal', $(this).val()); 
     }); 

}); 

發了Fiddle爲您

+0

好的方法@亞歷克斯。我試圖做同樣的事情,但使用隱藏的輸入,而不是數據:P –

+0

@Alek謝謝:)考慮使用這個,因爲在我看來做出一些額外的輸入並不是很好:/ – Alex

+0

完全一致;) –

5

檢查:

$(document).ready(function(){ 

$(".item:input").bind('keyup change click', function (e) { 
     //doing something 
if(e.keyCode == 38) { //Enter keycode 

    alert("up") 
}else if(e.keyCode == 40){ 
    alert("down"); 
} 


}); 

});

演示:http://plnkr.co/edit/CjSG5VVYFZXr2tEkna5x?p=preview

+0

我在演示站點向下按壓起來。它沒有顯示任何提醒 – user2729183

+0

其工作,但我需要鼠標點擊事件。當我點擊向上箭頭它應該打印 – user2729183

+0

好吧..將更新該部分 – Pranav

1

只是看看這個小提琴。還沒完成。但你會得到一個知道怎麼做.. fiddle

$(".item:input").bind('keyup click', function (e) { 
     //doing something 
if(e.keyCode == 38) { //Enter keycode 

    alert("up") 
}else if(e.keyCode == 40){ 
    alert("down"); 
} else { 
    $("input").change(function() { 
    if (a> $("input").val()) { 
     alert("down"); 
     a = $("input").val(); 
    } else 
    { 
     a = $("input").val(); 
     alert("up"); 
    } 

    }); 
} 


}); 
+0

嘗試在我的小提琴上按下鍵盤上的按鈕,它會工作,因爲這些按鈕改變輸入值 – Alex

+1

我沒有說你不會工作..但如果客戶有更多requiremnts你的將很難改變.. –

相關問題