javascript - jQuery .on() 不适用于多个选择器

标签 javascript jquery html

我有一个表单,正在使用 jQuery 来监听和记录用户的更改。它非常适合输入或选择字段,但似乎不喜欢将它们组合起来。根据关于 .on() 函数的 jQuery 文档,选择器应该是一个字符串。环顾堆栈溢出,似乎“选择输入”应该有效,但事实并非如此。使用多个选择器的正确方法是什么?

完整 fiddle : http://jsfiddle.net/L55rvuqh/4/

有问题的代码:

$('#test').on('focusin', 'select input', function(){
    $(this).data('val', $(this).val());

}).on('change', 'select input', function(){

    var prev = $(this).data('val');
    var current = $(this).val();

    console.log("Prev value: " + prev);
    console.log("Current value: " + current);
});

最佳答案

你应该改变它;

'select input'

'select,input'

$('#myform').on('focusin', 'select,input', function(){
    $(this).data('val', $(this).val());
    
}).on('change', 'select,input', function(){

    var prev = $(this).data('val');
    var current = $(this).val();
   
    console.log("Prev value: " + prev);
		console.log("Current value: " + current);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<form id="myform">
        <input id="field1" type="text" />
        <select id="field2">
            <option>1</option>
            <option>2</option>
        </select>
</form>

关于javascript - jQuery .on() 不适用于多个选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48359381/

相关文章:

javascript - 为什么这个子 Node 在 Firebase Cloud Functions 中没有被删除?

javascript - 添加获取图片URL; JavaScript 变量内

jquery - 移动设备中的 Fancybox 无法正常工作,fancybox overlay 隐藏了 fancybox wrap。

html - Div定位,列问题

jquery - 如何在引用或 block 引用标签上创建水平线

javascript - 浏览器可以处理多少个 DOM 元素

javascript - 带有确认对话框的操作链接

javascript - 如何获取文本框中以逗号分隔的多个值

jQuery 下拉菜单 selected=selected 在 Safari 中不起作用

javascript - 如何刷新页面中的特定div?