0

明らかに、これは最終的なフォームではありませんが、フォームをデバッグするために作成したスニペットです。最終フォームと同じエラーがまだ残っています。私はこれに何時間も取り組んできました。

私のクライアント localhost の他の HTML フォームの他の JavaScript はこれを行いません。これは、MAC 上の MAMP 環境にあります。

それはちょうどここにあり、私のa **を保存するためにそれを修正することはできません. この時点でのアドバイスは大歓迎です。シンプルなものでなければなりません。私はすべての難しいことを試しましたが、結果に影響はありません。

htmlファイルの中身

<!DOCTYPE html>
  <head>
    <meta charset="utf-8" />
    <title>NCSA Contact Form</title>
  </head>

  <body>
    <form action="test.js" name="frmNcsa" id="frmNcsa" method="post">
       <input type="submit" name="submitData" id="submitData" value="Submit"/>

    </form>

    <script type="text/javascript" src="test.js"></script>

  </body>
</html>

test.js ファイルの内容

    var $ = function(id){
      document.getElementById(id)
    }

    function prepareEventHandlers() {
      alert("This is test.js")
    }

    window.onload =  function () {
      prepareEventHandlers();
    }

Firefox エラー メッセージ

プレーン テキスト ドキュメントの文字エンコーディングが宣言されていません。ドキュメントに US-ASCII 範囲外の文字が含まれている場合、一部のブラウザー構成では、ドキュメントが文字化けしてレンダリングされます。ファイルの文字エンコーディングを転送プロトコルで宣言する必要があるか、ファイルがエンコーディング シグネチャとしてバイト オーダー マークを使用する必要があります。

ページのリロード後

フォームの送信ボタンをクリックした後にブラウザーに表示される内容 ページがリロードされ、送信ボタンが消えます。JS ファイルはブラウザにテキストとして読み込まれます

var $ = function(id){
    document.getElementById(id)
}

function prepareEventHandlers() {
    alert("This is test.js")
}

window.onload =  function () {
    prepareEventHandlers();  
}

送信をクリックするとどうなりますか?

「これはテストです」というアラート ダイアログ ボックス。

4

1 に答える 1

3

フォームに含めることで、サーバー上のtest.jsaction="test.js"にフォームを送信 (投稿) する必要があることをブラウザーに伝えますが、これはあまり意味がありません。あなたが実際に達成しようとしていることについて詳しく知ることなく、JavaScriptでフォームをクライアント側で純粋に処理したいだけだと思いますか? この場合、フォームはまったく必要ありません。必要なのは、クリックされたときにハンドラー関数を呼び出すアクションを含む送信ボタンだけです。

于 2012-09-04T18:30:46.093 に答える