我有一个文本框
,我可以在其中直接通过键盘或鼠标单击输入值。如果我单击鼠标,该值将比前一个值增加 1。而从键盘我可以输入任何值。我的问题是如何检测任何用户输入的文本框的值。
假设如果通过键盘输入任何值,我需要重置为零。
这是我到目前为止得到的
function AddTrackingItem()
{
var counter;
$("#Item_Count").keyup(function (event) {
if(event.which == 13)
counter = 0; // if value is enter from keyboard then reset value
else
{
counter = $("#Item_Count").val();
}
});
TIA
最佳答案
我假设 html 看起来像这样:
<input type="text" id="item_count" value="0" />
<input type="button" id="btn" value="Increment"/>
您需要一个用于单击按钮的事件处理程序(显然),以及一个用于输入字段上的更改事件的事件处理程序。单击按钮不会触发更改事件,但手动更改输入字段会触发更改事件。因此,如果用户更改该字段,我们可以安全地将计数器重置为 0。
$('#btn').on( 'click', function() {
$('#item_count').val( function( i, oldval ) {
return (oldval*1) + 1;
} );
} );
$('#item_count').on( 'change', function() {
$('#item_count').val( '0' );
} );
编辑:输入数据只有两种方法。一种是通过键盘。另一种是通过按钮。这意味着如果更改事件不是由按钮触发的,则 100% 触发更改事件的情况都必须是通过键盘触发的。您可以稍微更改代码以包含 jQuery 的 .data(...)
( docs ) 功能,并执行类似于以下代码的操作。当输入被更改并随后按下按钮时,它将重置输入。
$('#btn').on( 'click', function() {
$('#item_count').val( function( i, oldval ) {
if( $(this).data( 'fromKeyboard' ) == 1 ) {
$(this).data('fromKeyboard', 0 );
return 1;
}
return (oldval*1) + 1;
} );
} );
$('#item_count').on( 'change', function() {
$(this).data( 'fromKeyboard', 1 );
} );
示例 on jsbin .
关于javascript - 检测用户输入的文本框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19524347/