JavaScriptの - フォームのOnSubmitのは動作しますが、アクションはしていません

StackOverflow https://stackoverflow.com/questions/989534

質問

私のFORMでは、何らかの理由で、私はonsubmitを経由して、私のフォーム入力変数を取得しますが、actionを使用することはできません。

この作品ます:

<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.valueがnullであることが判明した)動作しません。

<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>

なぜそれがonsubmitthis.city.valueが、actionイベントはできません得ることができるのですか?

役に立ちましたか?

解決

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

の代わりに、絶対的な位置を使用する

action="javascript:myFnc(document.getElementById('city-field').value)"

他のヒント

編集:クリストフさんのコメントのおかげで、以下、私は私の巨大な監視を実現しました。ここでは実装され、彼の提案との最終的な解決策はあります。

<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>

これは、あなたが必要なものを行う必要があります。私はあなたに私の以前の回答で私の完全な注意を与えていないことをお詫び申し上げますます。

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

フォームは、サーバー上の別のファイルにデータを送信するためであるから。アクションで我々は、我々はデータを送信するために必要なパスを指定することができます。そうそこには、フォームが持っている値を取得カントます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top