Javascript-从鼠标更改事件中查找特定表单

Javascript-从鼠标更改事件中查找特定表单,javascript,Javascript,我有一个带有4个单独下拉选项表单的网页,我有一个javascript函数,当任何表单通过鼠标更改时都会调用该函数 如何确定从事件对象更改了哪些特定表单,以及随后所做的特定选项更改 我所举的所有例子似乎都假设每个表单都有一个专用的javascript函数。但我希望能够“动态”构建表单,因此我需要通过单个javascript函数传递所有表单更改 回答这个问题-这里有更多信息: 我确实使用jQuery(但我是新手)——javascript事件设置代码行是: document.onchange=thi

我有一个带有4个单独下拉选项表单的网页,我有一个javascript函数,当任何表单通过鼠标更改时都会调用该函数

如何确定从事件对象更改了哪些特定表单,以及随后所做的特定选项更改

我所举的所有例子似乎都假设每个表单都有一个专用的javascript函数。但我希望能够“动态”构建表单,因此我需要通过单个javascript函数传递所有表单更改

回答这个问题-这里有更多信息:

我确实使用jQuery(但我是新手)——javascript事件设置代码行是:

 document.onchange=this.audioselect  
而audioselect函数目前只有一行-一个警报,证明每次表单更改都会调用它:

alert("audio Select this: " + evtobj.type.toString(). ). 
表单的定义与此表单类似(每个后续表单名称递增:

"



选择图像1音频
哦,介绍 哦,前面 哦,情节 哦,霍尔
谢谢你的期待


-mike

可能会为每个表单提供唯一的ID,以便您知道单击了哪个下拉菜单,并相应地运行专用的javascript函数。

jQuery非常适合此任务。在不同的浏览器中附加事件可能是一件痛苦的事情。下面是一个指向JSFIDLE的链接,其中显示了如何实现某项任务的简单示例就像你说的:

您需要单击屏幕左上角的run按钮,然后从表单中进行选择,以查看您从何处选择的内容的警报

在JSFIDLE中,我在文档中附加了一个jQuery事件监听器——如果表单是动态创建的,这一点很重要。事件监听器被设置为只关注表单元素中发生的事件

$(document).on("change", "form", function(e){
    var currentForm = $(this);
    var formName = currentForm.attr('name');
    var selectedOption = currentForm.find('option:selected').val();
    alert("form: " + formName + ", selected: " + selectedOption);
});

附加的函数将接收触发事件的元素作为“this”。然后我们可以使用更多的jQuery(通过在jQuery选择器中包装“this”)为了方便地访问表单名称和所选选项等。

谢谢您的输入-我已经有了一些工作。首先,我必须将脚本与我拥有的其他一组鼠标事件函数分开放置,而且表单名称未定义,然而(奇怪的是)已正确设置选项selectedOption。但是,无法从“this.name”获取表单名称。请参阅下面的脚本:

有点混合,但确实有效

"

$(文档).on(“更改”、“形式”、函数(e){
var currentForm=$(此);
var formName=currentForm.attr('name');
var selectedOption=currentForm.find('option:selected').val();
警觉的(
音频选择窗体:“+currentForm.name+”选项:“+selectedOption”
+“this name:”+this.name
)
});
"

谢谢-mike

你能发布一些示例代码吗?你在使用jQuery吗?javascript事件设置代码是:document.onchange=this.audioselect,而audioselect函数中只有一个警报:alert(//“audio Select this:”+evtobj.type.toString()”audio Select this:“+evtobj.id.toString())$(document.)。on”(“更改”,“form”,函数(e){var currentForm=$(this);var formName=currentForm.attr('form:name');var selectedOption=currentForm.find('option:selected').val();警报(“音频选择表单:“+currentForm.name+”选项:“+selectedOption+”此名称:“+this.name”)$(document).on(“change”,“form”,function(e){var currentForm=$(this);var formName=currentForm.attr('form:name');var selectedOption=currentForm.find('option:selected').val();alert(“音频选择表单:+currentForm.name+”选项:“+selectedOption+”此名称:+this.name”) });
$(document).on("change", "form", function(e){
    var currentForm = $(this);
    var formName = currentForm.attr('name');
    var selectedOption = currentForm.find('option:selected').val();
    alert("form: " + formName + ", selected: " + selectedOption);
});
$(document).on("change", "form", function(e){

             var currentForm = $(this);
             var formName = currentForm.attr('name');
     var selectedOption = currentForm.find('option:selected').val();

    alert(
        "audio Select Form: " + currentForm.name + " Option: " + selectedOption
            + " this name:" + this.name 
        )

});
</script>"