2016-03-20 30 views
-1

私は自分の問題を解決するために本当に頑張りましたが、検索結果には余分なコード(PHP、divsなど)がたくさん表示されます。Javascript HMTL、onclickイベントは、ボタンをクリックしたときに送信されますが、キーボードで入力が押されたときは送信されませんか?

私はHTMLとJavaScriptのみを使用しています。

私は(一つの形

<form id="form1"> 
<input name="name" type="text" size="20"> 
</form> 

そして、もう一つのボタン

<button onclick="outputname()" type="submit">Search</button> 

だからアイデアは、フォーム上の数のユーザータイプで、検索ボタンをクリックすると、アクションが実行され、この作品を持っていますすばらしいです)。

しかし、ユーザが数字を入力し、キーボードのEnterボタンを押すと、ページがリフレッシュされます。 iPadでも同じことが起こります。 (「戻る」ではなく「戻る」ボタンが表示されます)。

キーボードでEnterボタンを使用し、iOSで作業するようにします。

アイデアは、ユーザーが顧客番号を入力し、関連する詳細が表示されることです。

+1

送信ボタン( '')用のHTMLを使用し、フォーム上に 'onsubmit'イベントがあると考えましたか? – dovetalk

+0

これはあなたにとって興味深いかもしれません:http://stackoverflow.com/questions/2314401/what-is-the-default-form-http-method – gibberish

+0

dovetalk私はtype = "text"をtype = "submit"に変更しました。ユーザーがフォームにテキスト/数値を入力する代わりに、フォームは「submit query」というボタンに変わりました。LMAO私はこれをあきらめています – Abdul

答えて

2

必ずトラップ正しいものであることを、あなたの入力フィールドとボタンの両方にIDを付与します。

HTML:

<form action="destination.html" method="post"> 
    <input id="foo" name="name" type="text" size="20"> 
    <button id="mybutt" onclick="outputname()" type="submit">Search</button> 
</form> 

(注)に投稿されたデータを配置したい場所をdestination.htmlであること。同じファイルに投稿したい場合は、action=""を使用するか、そのまま使用してください。

Javascriptを:

document.getElementById('foo').onkeypress = function(e){ 
    if (!e) e = window.event; 
    var keyCode = e.keyCode || e.which; 
    if (keyCode == '13'){ 
     var btn = document.getElementById('mybutt'); 
     mybutt.click(); 
     return false; 
    } 
} 

出典:フォームタグ内 action="post"

How to detect when the user presses Enter in an input field

Capturing the Enter key to cause a button click with javascript

+0

私はこのアクションを残しました。フォームはそこにあり、ボタンはそこにあります。しかし、絶対に何も起こりません。私は近いかもしれないと思う。文法エラーかもしれません。 – Abdul

0

これを挿入します。すなわち、フォームタグはこの場合、このよう <form id="form1" action="post">

+0

私は神に誓う私はこれまでに提案されたすべての試みを試したが、最も近いものはstatosdotcomの答えである。 action = "post"をコードに追加しましたが、Enterを押すと、 "File not found"/post?name = 702536649 <---これは挿入した番号です。 Gibberishは、他にもaction = "post"を挙げました。私は試して編集を続けます。 – Abdul

+0

あなたの最初の問題は終わったと思います。あなたのフォームは実際に投稿されています。 「ファイルが見つかりません」と表示された場合は、別の問題に直面していることを意味します。これはおそらく、投稿されたデータをどう扱っているかということです。私たちに見せるためにjavascript関数outputnameを表示してください。 – statosdotcom

+0

Abdulは、答えがあなたが探していたものかどうかを正しく確認してください。 HTML仕様書を読んだら、ENTERキーを押してフォームを提出するには、私が提案したように 'form'タグの中に' action = post'を入れる必要があります。私が前に言ったように、あなたが "ファイルが見つからない"ことが判明しているなら、フォームが提出されたという証拠です(しかし、間違った、または設定されていない運命のためです)。それ以降は私はあなたに1をプラスします。ありがとう、ごめんなさい。私はすぐ後にこのコメントを削除します。 – statosdotcom

1

なければならないだろう、あなたの代わりにkey/clickイベントのsubmitイベントを、管理することができます。クリックまたはoutputnameを呼び出しますEnterキーを押すのいずれかによってトリガ

<form id="form1" onsubmit="outputname()"> 

提出イベント。

+0

あなたは良い点があります – gibberish

関連する問題