输入新号码时更改输入类型号码的事件

change event for input type number when input new number

我正在尝试获取输入的值而不是检查它是否已更改,默认情况下,该值为 1。当使用箭头键更改、输入或递增时,它将触发更改侦听器。到目前为止,当我更改默认值时它不会触发。

我要从中提取输入值的行的代码。

<tr class="deleteRow">
    <th scope="row">
        <button type="button" class="btn btn-danger btn-sm">
            <i class="fas fa-trash"></i>
        </button>
    </th>
    <td>Item 1</td>
    <td>
        <input class="form-control" type="number" value="1" />
    </td>
    <td>RM 50.00</td>
</tr>

到目前为止我的功能代码:

<script>
    $('.form-control').change(function(){
        alert("this doesn't fire help!");
    });
</script>

有什么建议吗?

编辑:一些额外的信息,该行是用一个按钮动态添加的。我检查了该行的其他按钮,它们有效。他们都使用 on('click') 除了我正在处理的数字输入。

编辑 编辑:因此它不适用于页面加载后添加的行。如果以编程方式添加行,则侦听器不起作用。

尝试以下操作,您的代码缺少 ' 它应该是 '.form-control':

$('.form-control').change(function(){
  alert("this doesn't fire help!");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<tr class="deleteRow">
    <th scope="row">
        <button type="button" class="btn btn-danger btn-sm">
            <i class="fas fa-trash"></i>
        </button>
    </th>
    <td>Item 1</td>
    <td>
        <input class="form-control" type="number" value="1" />
    </td>
    <td>RM 50.00</td>
</tr>

解决方案 所有按键事件箭头、按键、鼠标滚轮

 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <tr class="deleteRow">
        <th scope="row">
            <button type="button" class="btn btn-danger btn-sm">
                <i class="fas fa-trash"></i>
            </button>
        </th>
        <td>Item 1</td>
        <td>
            <input class="form-control" type="number" value="1" />
        </td>
        <td>RM 50.00</td>
    </tr>
<script>
$(document).ready(function() {
    $('.form-control').on('input', function() {
        alert($('.form-control').val())
      });
});
</script>

You need to put single quotes in class. Try this, Will definitely work.

$('.form-control').change(function(){
        alert("this doesn't fire help!");
    });

Remember one thing always while writing the JS , you should always check the console

根据您当前的代码 $(.form-control),控制台中必须有一个类似 unexpected token . 的错误日志,因为它需要在引号内,它应该类似于 $(".form-control"),但它没有不管你可以单引号还是双引号

感谢那些指出我错字的人。我已经为此修复了代码。我的主要问题是更改事件没有触发我动态添加的行。

解决方案是让更改事件检测父项中的更改,其中将包含动态添加的行,在本例中为 tbody。

新功能代码如下

$('.table tbody').on('input',function(){
     alert("this doesn't work help!");
});