0

ファイルのアップロードを処理するためにjqueryフォームプラグインを使用しています。

これは私のフォームです、

    <form action="upload.php" method="post" enctype="multipart/form-data" id="myForm">
  <input type="file" multiple="multiple" name="file[]" />
  <input type="submit" name="upload" value="Submit"/>
</form>
<div id="output"></div>    

jquery、

    $('#myForm').submit(function() {

        $(this).ajaxSubmit({
        target: '#output'
        });

        return false;

   });

このアイデアのフォールバックは、ファイルをアップロードする前に2回クリックする必要があることです。クリックしてファイルを参照し、[送信]ボタンをクリックする必要があります。

どうすればワンクリックに減らすことができますか?理想的には、デスクトップからファイルを選択し、参照ウィンドウ/ポップアップで[OK]をクリックすると、送信が自動的にトリガーされるようにします。

出来ますか?

別の注意:Chrome、IE、Safariで機能しない理由(FirefoxとOperaでのみ機能します)-フォームはこれらのブラウザで送信されますが、私はすでにに設定しsubmit()ていreturn falseますか?

4

2 に答える 2

0
$('input[type=file]').change(function() {
    var vals = $(this).val(),
        val = vals.length ? vals.split('\\').pop() : '';
    alert("value changed submit the form here");
    $('input[type=text]').val(val);
});

http://jsfiddle.net/CSvjw/82/

于 2011-08-20T12:51:24.703 に答える
0

ファイルを処理する入力にイベント ハンドラーを設定し、それを「変更された」イベント ハンドラーにリンクする必要があります。このようにして、ファイル名がユーザーによって変更されるたびに、呼び出す関数はファイルが存在するかどうかを確認し、フォームを自動的に送信できます。

デフォルトのイベントが発生しないようにする「Jquery の方法」はevent.preventDefault(). これはおそらく同じですreturn falseが、使用しても問題はありませんでした。もう 1 つの問題は、ブラウザでスクリプト エラーが発生し、false が返されない可能性があります。これを行うには、イベント ハンドラーを次のように変更します。

    function(event)  {
       event.preventDefault();
       // Do stuff here
    }
于 2011-08-20T12:40:51.417 に答える