使用jQuery.each()确保输入属于某种类型

时间:2011-02-14 20:21:26

标签: javascript jquery jquery-selectors html-input

我正在尝试遍历表单中所有“text”或“file”的输入。

这是我的表单标记:

<form action="" method="post" id="upload_form">
    <p>
        <label for="name">Skin name:</label><br />
        <input type="text" name="name" />
    </p>
    <p>
        <label for="desc">Skin description:</label><br />
        <input type="text" name="desc" />
    </p>
    <p>
        <label for="aname">Authors name:</label><br />
        <input type="text" name="aname" />
    </p>
    <p>
        <label for="aname">Skin image file:</label><br />
        <input type="file" name="skin" />
    </p>
    <p>
        <input type="submit" value="Upload" />
    </p>
</form>

我基本上想要检查除提交按钮之外的所有这些输入。到目前为止,这是我的代码:

$('#upload_form').submit(function(e) {
    $('#upload_form input').each(function(index) {
        if( this.type == "input" ) {

        }
    });
});

但我知道这是错的。谁能告诉我如何迭代每个输入文本或文件输入?

感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用过滤器选择器来完成此操作。

我相信你可以这样做:

$('#upload_form').submit(function(e) {
    $('#upload_form input').not(':submit').each(function(index) {
        ...
    });
});

我认为这也有效:

$('#upload_form').submit(function(e) {
    $('#upload_form input').filter('[type=text], [type=file]').each(function(index) {
        ...
    });
});

答案 1 :(得分:0)

使用this.tagName它会将标记类型作为大写字符串。