jQuery.submit()是否缩小了DOM元素的范围?

时间:2014-04-16 13:34:08

标签: javascript jquery dom

让我们想象一下,我们有这样的代码:

    $('form[name = "someName"]').submit(function() {
        var formInputValue = $('#inputId').val();
});

如果在此表单的同一页面上有另一个具有相同ID的元素,会发生什么情况?当我们在function()中时,jQuery.submit()函数是否缩小了可用DOM元素的范围?如果没有,如何简单地获得特定形式的输入值?

3 个答案:

答案 0 :(得分:2)

如果你使用ID,jQuery将停在与DOM上的那个ID匹配的第一个元素上。您或许应该考虑使用jQuery的closest函数,或者只是执行:

$(this).serialize();

serialize您的表单。

无论如何,ID应该始终是唯一的:https://softwareengineering.stackexchange.com/questions/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really

答案 1 :(得分:1)

如果提交表单ID并且您的页面有两个具有相同ID的表单。它适用于第一个表格提交。

如果您想为多个表单使用相同的功能,则可以使用此代码

$('form').submit(function() {
    alert($(this).serialize());
    return false;
});

Fiddle

答案 2 :(得分:1)

如果您需要访问表单中输入的数据,请考虑致电.serialize().serializeArray()

使用您提供的代码,我猜jQuery将返回找到的第一个元素的值或带有所有值的数组。

请参阅文档以获得进一步说明:

https://api.jquery.com/serializeArray/

https://api.jquery.com/serialize/