2

すべてのフォーム要素で.each()ループを実行しています。入力タイプ(チェックボックス、テキスト、選択、テキストエリアなど)を判別する方法が見つかりません。

何か案は?

 // When submitting
$("input[name='event_form_submit']").click(function() {
    $("form[name='tepg_form_processor'] :input").each(function() {
        console.log($(this).attr("type"));
       // Determine whether this is a select, input etc?
    });
    return false;
});
4

3 に答える 3

2
$("form[name='test'] :input").each(function() {
    if(this.tagName == "INPUT") {
        console.log(this.tagName + ": " + this.type);
    }
    else 
        console.log(this.tagName);
});

フィドル: http://jsfiddle.net/samliew/YSsvp/8/

利用可能な入力要素の種類

于 2013-02-04T10:20:26.543 に答える
1

私はお勧めします:

$("form[name='test'] :input").each(function() {
    /* gets the type of the element ('checkbox','text','radio', etc
       if there's no 'type' then it retrieves the tagName of the
       element instead 'select','textarea', etc */
    var inputType = this.type || this.tagName.toLowerCase();
    console.log(inputType);
    /* then does uses a switch to do something depending
       on what you want to do */
    switch (inputType) {
        case 'text':
            // do something with text-inputs
            break;
        case 'radio':
            // do something with radio-inputs
            break;
        case 'select':
            // do something with select-elements
            break;
        // ...etc...
        default:
            // do something with other elements, element-types
            break;
    }
});

JS フィドルのデモ

于 2013-02-04T10:24:34.747 に答える
0

これを試してください(jsfiddle):

$("form[name='test'] :input").each(function() {
    alert(this.type);
});
于 2013-02-04T10:35:00.803 に答える