1

そのため、ファイル入力を含むフォームとそうでないフォームの送信リスナーを別々にしようとしています。リスナーを追加する前に必要な要素をフィルタリングしようとすると、html 本体全体が選択されているようです。これは達成できますか?または、両方のリスナーをすべてのフォームに設定し、送信後にフィルターをかけますか?

http://jsfiddle.net/bi11j0hnst0n/MMzg7/3/

$(function(){
    //file form listener
    var file_forms = $('input[type=file]').closest('form');
    $('body').on('submit', file_forms, function(event){
        event.preventDefault();
        var form = $(this);
        form.css('background-color', 'blue');
        setTimeout(function(){
            form.css('background-color', 'white');
        }, 3000);
    });
    //regular form listener
    var regular_forms = $('form').not($('input[type=file]').closest('form'));
    $('body').on('submit', regular_forms, function(event){
        event.preventDefault();
        var form = $(this);
        form.css('background-color', 'red');
        setTimeout(function(){
            form.css('background-color', 'white');
        }, 3000);
    });
});
4

2 に答える 2