私は次のフォームを持っています:
<form id="vintro-upload-form" action="{url}?nexturl={nextUrl}" method="post" enctype="multipart/form-data" >
<input name="file" type="file"/>
<input name="token" type="hidden" value=""/>
<input value="Upload Video File" type="button" name="submit" onClick="checkFile()" class="button" />
</form>
および次のJavaScript:
<script>
function checkFile(){
var fileVal = document.forms["vintro-upload-form"].elements['file'].value;
//RegEx for valid file name and extensions.
if(fileVal != ""){vintro-upload-form.submit();}
else {alert('Please select the Video file.');}
}
</script>
何が機能しますか?fileValの割り当ては適切です。送信が機能していません。デバッガーを確認すると、「vintroが未定義です」と表示されます。
私は何を試しましたか?次の例とコード:
- http://www.w3schools.com/jsref/met_form_submit.asp
- http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml
- document.vintro-upload-form.submit();
- document.forms ["vintro-upload-form"]。submit();
- document.getElementById( "vintro-upload-form")。submit();
- ダッシュ/ハイフンをアンダースコアに変更
成功しませんでした。このフォームでもいくつかのjQuery(別の.jsファイル内)が実行されており、ハイフンでつながれた名前で正しく機能します。
送信呼び出しが機能しないのはなぜですか?
編集:私はdocument.getElementById('vintro-upload-form').submit();
この質問への回答で提案されているように使用しようとしましたが、これはまだ失敗しています。私の(Firefox)デバッガーはそれが関数ではないと言っています。Chromeのデバッガーはもう少し説明しました:「キャッチされていないTypeError:オブジェクト#のプロパティ'submit'は関数ではありません」(それまでの間、これをGoogleに送信します)。
私の評判は100未満なので、わかりました。それで、私は間違った質問をしていました。
私が見つけた答えは次のとおりです。 外部PHPファイルで定義されたフォームであるJavascriptを介したフォームの送信
受け入れられた回答も確認してください。