4

私のでは、何らかの理由で、を使用せずFORMにフォーム入力変数を取得できます。onsubmitaction

これは機能します:

<form onsubmit="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

これは機能しません ( this.city.valuenull であることが判明しました)

<form action="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

onsubmitを取得できるのにthis.city.valueactionイベントを取得できないのはなぜですか?

4

3 に答える 3

11

フォームアクションタグは何も参照していませんthis

代わりに、絶対位置を使用してください

action="javascript:myFnc(document.getElementById('city-field').value)"
于 2009-06-13T00:20:10.367 に答える
4

編集:以下のクリストフのコメントのおかげで、私は自分の大きな見落としに気づきました。これが彼の提案を実装した最終的な解決策です。

<form action="" onsubmit="myFunc(this.city.value); return false;">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

これはあなたが必要とすることをするはずです。以前の回答で十分な注意を払っていなかったことをお詫び申し上げます。

于 2009-06-13T00:03:52.120 に答える
0

HTMLフォームは、データ処理のためにサーバー上のスクリプトにデータを送信するために使用されます。フォームが送信されると、フォームフィールドのデータが名前と値のペアの形式でサーバーに渡されます。いくつかの異なる言語で記述できるサーバーサイドスクリプトを使用して、受信データを処理し、新しいHTMLページをブラウザに返します。ブラウザに返されるページは、「登録していただきありがとうございます」メッセージまたはデータベースクエリから生成された検索結果のリストからのものである可能性があります。

フォームはサーバー上の別のファイルにデータを送信するためのものであるためです。実際には、データの送信先となるパスのみを指定できます。そのため、フォームが持っている値を取得することはできません。

于 2009-06-13T04:47:43.420 に答える