查找表单的哪些特定部分已在输入中更改

时间:2013-11-25 16:31:38

标签: javascript jquery html

我的页面上有多个表单,其中包含以下功能:

$('#pageContainer').on('input propertychange change', '#form1', function() {}

在这个函数中,我进行了11个函数调用,为11个不同的textarea框格式化文本。我不需要打电话给所有11,只需要改变那些需要格式化的那个。

有没有办法弄清楚表单的哪个部分已被更改,这使得函数调用以便我可以调用正确的(11个中的1个)函数,或者根本没有函数?

基本上,如果textarea 1-11是调用.on()的输入,则调用该特定函数。如果没有,请不要打电话。

2 个答案:

答案 0 :(得分:3)

您可以使用event.target找出导致更改事件的元素。

   $('#pageContainer').on('input propertychange change', '#form1', function(e) {
       var elementId = e.target.id;
       //Do you actions based on this
   }

答案 1 :(得分:0)

我不认为检查这些东西有一个很好的方便,但你可以在onChange事件上分配一个事件处理程序,这可以将$(this).attr("id")添加到数组中。然后,您可以构建基于该数组的选择器?

例如

var changes = [];
$("input").on('change', function() {
    changes.push($(this).attr(id));
});

function yourFormattingFunction() {
    var selector = "#" + changes.splice(", #");
    $(selector).each(function() {
        //...Do your formatting here
    });
}

可以做出明显的改进,例如确保列表是唯一的等等,以改善这一点......

相关问题