javascript - 检测用户输入的文本框的值

标签 javascript jquery

我有一个文本框,我可以在其中直接通过键盘或鼠标单击输入值。如果我单击鼠标,该值将比前一个值增加 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/

相关文章:

javascript - 删除事件为 'replace' 的文本

jquery - 使用 jQuery 1.9 的 MVC 4 项目中的 jquery.validate.js 出错

javascript - 匹配两个javascript数组以形成交集结果

javascript - 向下滚动点击效果不佳

javascript - 使用jquery通过填充颜色选择Svg路径

javascript - 使用 Puppeteer 响应 Chrome 的通知

javascript - 为什么下面的代码是异步执行的

javascript - Ctrl + F5 导致页面跳转,但 F5 不会

JavaScript 调用速度如此之快

javascript - 如果我们单击 slider ,jquery UI Slider 自定义控件音量图像不会改变