Javascript 检测用户输入的文本框的值

Javascript 检测用户输入的文本框的值,javascript,jquery,Javascript,Jquery,我有一个文本框,可以直接从键盘或鼠标点击输入值。如果从鼠标单击,则该值将从上一个值递增一。而我可以通过键盘输入任何值。我的问题是如何检测任何用户输入的文本框的值 假设通过键盘输入任何值,我需要重置为零 这是我到目前为止得到的 function AddTrackingItem() { var counter; $("#Item_Count").keyup(function (event) { if(event.which == 13) counter = 0;

我有一个
文本框
,可以直接从键盘或鼠标点击输入值。如果从鼠标单击,则该值将从上一个值递增一。而我可以通过键盘输入任何值。我的问题是如何检测任何用户输入的文本框的值

假设通过键盘输入任何值,我需要重置为零

这是我到目前为止得到的

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"/>
编辑:只有两种输入数据的方式。一种是通过键盘。另一个在按钮旁边。这意味着,如果更改事件不是由按钮触发的,则100%的更改事件是通过键盘触发的。您可以稍微修改代码,以包含jQuery的
.data(…)
()功能,并执行类似以下代码的操作。当改变输入时,它将重置输入,随后按下按钮

$('#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 );
} );

示例。

我假设html看起来像这样:

<input type="text" id="item_count" value="0" />
<input type="button" id="btn" value="Increment"/>
编辑:只有两种输入数据的方式。一种是通过键盘。另一个在按钮旁边。这意味着,如果更改事件不是由按钮触发的,则100%的更改事件是通过键盘触发的。您可以稍微修改代码,以包含jQuery的
.data(…)
()功能,并执行类似以下代码的操作。当改变输入时,它将重置输入,随后按下按钮

$('#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 );
} );

示例。

如果您不希望用户在文本框中手动输入值,为什么不将其设置为只读? 不管怎样,如果你想做你坚持要做的事。下面是如何做到这一点

$("#btn").click(function(){
    var currentVal = $("#item_count").val(); 
    var counter = parseInt(currentVal) + 1;
    $("#item_count").val(counter);
});

$("#item_count").keyup(function (event) {
    $("#item_count").val("0");
});

请注意,我没有enterkey事件(13)的侦听器,因为我在keyup时将值更改为0。如果希望在enter键上将值更改为0,则可以执行代码中的操作。请记住将字符串转换为int,以便可以添加/增加值。执行.val()操作时,它返回的字符串不是int。希望这有帮助。如果您有任何问题,请告诉我。

如果您不希望用户在文本框中手动输入值,为什么不将其设置为只读? 不管怎样,如果你想做你坚持要做的事。下面是如何做到这一点

$("#btn").click(function(){
    var currentVal = $("#item_count").val(); 
    var counter = parseInt(currentVal) + 1;
    $("#item_count").val(counter);
});

$("#item_count").keyup(function (event) {
    $("#item_count").val("0");
});

请注意,我没有enterkey事件(13)的侦听器,因为我在keyup时将值更改为0。如果希望在enter键上将值更改为0,则可以执行代码中的操作。请记住将字符串转换为int,以便可以添加/增加值。执行.val()操作时,它返回的字符串不是int。希望这有帮助。如果您有任何问题,请告诉我。

我对您的问题有点困惑-您声明文本框接受用户输入的值,但后来您还想将键盘输入重置为0。。。你想用哪种方式?你用它做什么?为什么要用文本框来表示不应该编辑的内容?我有一个按钮,可以增加
textbox
中的值。如果单击按钮,我需要检查
文本框中的值
值是从键盘还是按钮输入的。如果它是从键盘输入的,那么我必须重置为零。你的问题让我有点困惑-你说文本框接受用户输入的值,但后来你还想将键盘输入重置为0。。。你想用哪种方式?你用它做什么?为什么要用文本框来表示不应该编辑的内容?我有一个按钮,可以增加
textbox
中的值。如果单击按钮,我需要检查
文本框中的值
值是从键盘还是按钮输入的。若它是从键盘输入的,那个么我必须重置为零。谢谢你们的帮助,但这不是我想要做的。我想知道文本框中的值是否是从键盘输入的。@Lakhae not enter by button=>enter by keyboard谢谢您的帮助,但这不是我想要做的。我试图知道文本框中的值是否是从键盘输入的。@Lakhae not enter by button=>enter by keyboard