1

以下はページのコードですが、コードの下部にあるファイルアップロード入力フィールドを介して選択されたファイルがあるかどうかを確認するための javascript を入れたことがヘッドに表示されます。ファイルの選択を検出した後、フォームを自動的に送信するはずですが、何らかの理由で自動的に送信されません。なぜこれが機能しないのですか?前もって感謝します!

JavaScript: (でhead)

<head>
    <script type="text/javascript">
        document.getElementById("photofield").onchange = function() {
            document.getElementById("form").submit();
        }
    </script>
</head>

HTML (フォーム):

<form enctype="multipart/form-data" action="photoupload.php" method="post" id="form">
    <input type="hidden" name="MAX_FILE_SIZE" value="524288">
    <p><input id="photofield" type="file" name="upload" /></p>
    </fieldset>
    <div align="center"><input type="submit" name="submit" value="Submit" /></div>
    <input type="hidden" name="submitted" value="TRUE" />
 </form>
4

1 に答える 1

0

これは、名前の入力要素 ( submit button) がsubmitあり、これが問題であるためです。送信ボタンの名前を別の名前に変更すると、submit機能します。たとえば、送信ボタンのコードbtn_submitsubmit

<input type="submit" name="btn_submit" value="Submit" />

今これを試してみてください

window.onload = function(){
    document.getElementById("photofield").onchange = function() {
        document.getElementById("form").submit();
    };
};

namesubmitの場合、次のエラーがスローされます

Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function

プロパティsubmitをに設定するHTMLFormElementため、フォーム要素のメソッドsubmitprototype実行できません。この動作例を確認してください(Chrome でのみテスト済み)。

また、コードをセクションで実行するとフォームが使用できず、次のエラーがスローされるため、ウィンドウのonload ( addEventListenerも読み取り、これも読み取ります) イベントにイベントを登録することが重要です。head

Cannot set property 'onchange' of null
于 2013-11-02T07:48:51.897 に答える