1

1 つは HTML、もう 1 つは ASP です。私は多くのガイドを見てきましたが、まだ修正できません。これらのファイルを保存してテストすると、メッセージは常に「null」になります。

最初のファイル、html:

    <!DOCTYPE html>
    <html>
    <body>
    <form name="formName" action="html_form_action.asp" method="get">
    <input type="text" id="name">
    <input type="submit" value="Enter">
    </form>
    </body>
    </html>

次に、asp ファイル:

    <!DOCTYPE html>
    <html>
    <body>
    <script>
    var x=document.getElementById("name");
    alert(x);
    </script>
    </body>
    </html>
4

4 に答える 4

2

document.getElementById("name");入力がそのページに存在しないため、最初のページが 2 番目のページに投稿されると仮定すると、決して機能しません。クエリ文字列値である何かにアクセスしようとしています。

関連する質問に対するこの回答は、クエリ文字列パラメーターを取得する最も確実な方法のようです: https://stackoverflow.com/a/2880929/534109

そのコードを使用して、2 ページ目で行っていることを次のように置き換えます。

alert(urlParams["name"]);

もちろん、参照されているコードを最初に含める必要があります。

于 2013-06-12T05:05:13.400 に答える
0

従来の ASP の方法で行うには、まず入力ボックスに名前を付けます (ID と同じでもかまいません)。

<input type="text" id="name" name="name" />

これで、送信ボタンをクリックすると値が送信されます。

次のステップは、そのようなコードをhtml_form_action.aspに含めることです:

var x = '<%=Replace(Request("name"), "'", "\'")%>';
alert(x);

これで、前のページで入力した内容で警告が表示されます。

于 2013-06-12T07:36:59.190 に答える
-1

ASPに触れたことはありませんが、あなたのコードによると、3つの問題があると思います。

  • フォームのメソッドは POST にする必要があります。
  • 入力に「名前」の代わりに別の ID を与える
  • 入力に「名前」属性を与えます。

    <input name="name" id="somethingElse">

于 2013-06-12T05:06:50.267 に答える