0

送信ボタンとinput = 'file'コントロールを備えたhtmlフォームがあります:

<form action="/Profile/UploadFile" enctype="multipart/form-data" method="post" onsubmit="OnUploadSubmit(this)"> 

OnUploadSubmit 関数は次のようになります。

  if (e.files[0].size > 5000000) {
        $('#upload_error').css('display', 'block');
        $('#upload_error').text('The file size is too large for upload')
        e.preventDefault();
        return false;
    }

    var files = e.files;
    var ext = $('#file_uploader').val().split('.').pop().toLowerCase();
    if ($.inArray(ext, ['jpeg', 'jpg', 'png']) == -1) {
        $('#upload_error').css('display', 'block');
        $('#upload_error').text('Only, jpg, jpeg, png is allowed');
        e.preventDefault();
        return false;
    }
    return true;
}

e.preventDefault() および return false; とにかくフォームが送信されていません。

誰かが私の問題を知っていますか?

ありがとう

4

4 に答える 4

8

最初に、イベントオブジェクトを関数に渡していないため、この方法で preventDefault を使用することはできません。次に:

onsubmit="return OnUploadSubmit(this)"

私は推奨:

id 属性を追加し、onsubmit を削除します。

<form id="upload" action="/Profile/UploadFile" enctype="multipart/form-data" method="post"> 

jQuery:

$(function(){ // Document Ready

        $('#upload').submit(function(e){

        e.preventDefault();
         if (e.files[0].size > 5000000) {
                $('#upload_error').css('display', 'block');
                $('#upload_error').text('The file size is too large for upload')
            }

            var files = e.files;
            var ext = $('#file_uploader').val().split('.').pop().toLowerCase();
            if ($.inArray(ext, ['jpeg', 'jpg', 'png']) == -1) {
                $('#upload_error').css('display', 'block');
                $('#upload_error').text('Only, jpg, jpeg, png is allowed');
            }
        }

    });

});
于 2012-05-11T12:36:29.937 に答える
3

OnUploadSubmit のメソッド定義にパラメーターとして e が含まれていますか? そうでない場合、e.preventDefault は機能しません。

于 2012-05-11T12:33:13.697 に答える
2

onsubmit="return OnUploadSubmit(this);"代わりに試しましたonsubmit="OnUploadSubmit(this)"か?

于 2012-05-11T12:34:51.373 に答える
2

私はあなたが必要だと思いますonsubmit="return OnUploadSubmit(this)"

于 2012-05-11T12:35:20.750 に答える