Убедиться, что вход имеет определенный тип с помощью jQuery.each () - PullRequest
0 голосов
/ 14 февраля 2011

Я пытаюсь перебрать все входные данные в моей форме, которые являются "текстовыми" или "файловыми".

Вот моя разметка формы:

<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 ]

2 голосов
/ 14 февраля 2011

Для этого можно использовать фильтр или селектор , а не .

Полагаю, вы можете сделать это:

$('#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) {
        ...
    });
});
0 голосов
/ 14 февраля 2011

Использовать this.tagName Это даст вам тип тега в виде заглавной строки.

...