0

我有一个没有 id 的表单,没有任何类。我需要获取其中的所有输入,我有一个脚本,但无论它们是否在我的表单中,它都会获取所有输入。

当然,我可以在我的表单中添加类、id,但是有没有什么方法可以在不向表单中添加标识符的情况下做我想做的事情?

在我的情况下,它会遍历我页面上的每个输入是合乎逻辑的,但是我如何确保它只会遍历当前表单上的每个输入?

$('form').submit(function(e){
    e.preventDefault();

    $('input, textarea').each(function(){
        alert('a'); // Alerts on every input, not just inside this form...
    });
});

小提琴:http: //jsfiddle.net/dsN43/

4

3 回答 3

3

您可以将this上下文(第二个参数)传递给 jQuery 函数以仅在当前元素内进行搜索。

$('form').submit(function(e){
    e.preventDefault();

    $('input, textarea', this).each(function(){
        alert('a'); // Alerts on every input inside this form.
    });
});
于 2012-04-06T11:37:35.783 回答
1
$('form').submit(function(e){
    e.preventDefault();

    $(this).find('input, textarea').each(function(){
        alert('a'); // Alerts on every input, just inside this form
    });
});
于 2012-04-06T11:36:59.887 回答
0

您可以像这样使用 jQuery find()方法:(最好调试打印元素的 tagName / name 属性,以确保找到正确的)

$(document).ready(function(){
    $('form').submit(function(e){
        e.preventDefault();

        $(this).find('input, textarea').each(function(){
            alert(this.nodeName + ' ' + $(this).attr('name'));
        });
    });
});​

jsFiddle 示例

于 2012-04-06T11:44:04.777 回答