1

申し訳ありませんが、問題が発生しました。フォームhtmlで入力タイプを送信すると、関数が実行されないのはなぜですか。これが私のコードです。

<script type="text/javascript">
   function submitHidden( ){
        document.getElementById("formParser").submit();
    }
    window.onload = setInterval(submitHidden, 10*1000 );

    function audioPlay(){
        document.getElementById("sirine").play();
        return true;
    }
</script>

<audio type="hidden" id="sirine" src="sirine.mp3" controls="controls">

<form id="formParser"  action="" method="post" onsubmit="audioPlay()">
<input type="submit" value="Click here to send">
</form>

なぜ私のオーディオサイレンが再生されないのですか。私のコードに何か問題がありますか?im sory、私は英語が苦手です、事前に感謝します、:)

4

2 に答える 2

1

わかりました、それを修正しましょう。

まず、私があなたのために作ったこのフィドルを見てください:http: //jsfiddle.net/gartz/7dASQ/3/

説明しましょう:

  1. この方法を使用する場合はsubmit()onsubmit
  2. 要素ボタンのイベントをシミュレートできます。そうすればclick、onsubmitをバイパスせずにフォームを送信できます。
  3. オーディオ要素のタイプが間違っていました。時間はファイルのヒントであり、非表示ではありません。CSSを使用して非表示にするか、タグstyle="display: none"を削除できます。controls

これはあなたの固定コードです:

<script type="text/javascript">
function submitHidden( ){
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    document.getElementById("submitButton").dispatchEvent(evt);
  }
  window.onload = function() {
    setInterval(submitHidden, 10*1000 );
  }

function audioPlay(){
    document.getElementById("sirine").play();
    return false;
}
</script>
<form id="formParser"  action="#" method="post" onsubmit="audioPlay(); return false;">
  <input id="submitButton" type="submit" value="Click here to send">
</form>
<audio id="sirine">
  <source src="http://musicsringtone.com/wp-content/uploads/2009/01/air-raid-siren-alert.mp3" type="audio/mpeg">
</audio>

PS:サイレンが10秒ごとに鳴っているので、誰かがあなたを殺そうとしても私は責任を負いません。

于 2013-01-05T06:36:47.687 に答える
0

submitHidden()問題は、関数で10秒ごとにフォームを送信していることです。JavaScriptの関数を使用すると、ハンドラーsubmit()をバイパスします。onSubmit

于 2013-01-05T05:48:52.893 に答える