質問

私はこのhtmlページがとっても簡単に含まれるテキストボックス、提出ボタンのないタイピングしながら、何らかのテキストボックス-プレスを入力機能、onclickイベントのボタンが呼び出されます。この作家、Google Chromeで動かないのでFireFoxでは、この通常の動作の設定が可能であっam欠。

<html>
<head>
<script language="javascript">
function callMe()
{
   alert("You entered: " + document.getElementById("txt").value);
}
</script>
</head>
<body>
<input type="text" id="txt" />
<input type="submit" value="Submit" onclick="callMe()" />
</body>
</html>
役に立ちましたか?

解決

から の説明 onclick イベント:

onclick られたときに発生するイベントのポインティングデバイスのボタンをクリック以上の要素となります。この属性がほとんどです。

保証はありませんが、UAてきましたようなイベントも ない を使用してポインティングデバイスをクリックします。

まうる onsubmit イベントにフォーム:

onsubmit られたときに発生するイベントの形で送付してください。でのみ適用され FORM 要素になります。

する必要がありまwrap形の周囲のテキストフィールドとボタンのもの

<html>
  <head>
    <script language="javascript">
      function callMe()
      {
        alert("You entered: " + document.getElementById("txt").value);
      }
    </script>
  </head>
  <body>
    <form onsubmit="callMe()" action="#">
      <input type="text" id="txt" />
      <input type="submit" value="Submit" />
    </form>
  </body>
</html>

他のヒント

onsubmitでフォームを追加してみてください-これは動作するはずです(FF 3.5でテスト済み):

<html>
<head>
<script language="javascript">
function callMe()
{
   alert("You entered: " + document.getElementById("txt").value);
}
</script>
</head>
<body>
<form onsubmit="callMe()">
<input type="text" id="txt" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

[編集当初、状況を誤解して別の回答を投稿しました。]

Chromeでも動作しません(4.0.223.11)。

問題は、<!> lt; form <!> gt;なしで<!> lt; input <!> gt; sを処理する際の違いです。 -囲み<!> lt; form <!> gt;を追加する場合要素、onclick要素が起動します(Johannes R <!>#246; sselが正しく推奨しているように、代わりにフォームの送信ハンドラを引き続き使用する必要があります。

[HTML5に関するメモを追加しました]

HTML5仕様には、送信ボタンでクリックイベントをディスパッチすることが記載されています

ユーザーエージェントは、各フォームのボタンをフォームのデフォルトボタンとして設定できます。これは、フォーム所有者がそのフォーム要素であるツリー順の最初の送信ボタンである必要がありますが、プラットフォームに適した別のボタンがある場合、ユーザーエージェントは別のボタンを選択できます。プラットフォームがユーザーによる暗黙的なフォームの送信をサポートしている場合(たとえば、一部のプラットフォームでは<!> quot; enter <!> quot;キーを押すと、テキストフィールドにフォーカスが暗黙的に送信されます)、そうすると、フォームのデフォルトボタンのアクティブ化動作(ある場合)を実行します。

Enterベースのアクティベーションを実装する必要はないことに注意してください(デスクトップブラウザーに実装されていますが)。また、<!> quot;アクティベーションメソッド<!> quot; (クリックイベント)は、入力がフォームの一部である場合に使用できます(<!> quot; has a form owner <!> quot;)。 <!> quot; form owner <!> quot;の定義<!> lt; form <!> gt;親またはform属性。

この決定に至った議論は見当たらないので、質問がある場合は、public-htmlメーリングリストで仕様が議論されている場所を尋ねることができます。

私が知る限り、「TextBox」内で「OnClick」を呼び出すことはできません。 TextBoxの外部にある必要があります。

TextBoxにテキストを入力し、ページのどこかでマウスを左クリックしてEnterキーを押すと、奇妙なことにOnClickイベントが機能します。

回避策を見つけた場合はお知らせください。

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