2017-02-11 6 views
0

私はウェブサイトのゲームを作成していますが、現在私は「対話」と名前を付けることに苦しんでいます。フォームなしで入力の値を送信する

最初はフォーム要素を作成してこれにアプローチしようとしましたが、入力または送信をクリックするとページが最新表示され、すべてが破棄されました。

だから私はこのようになりますそのフォームなしINPUTEタイプのテキストを使用:このように、現在見ている

You are 
<input type="text" id="dead"> 
<input type="submit" onclick="dead()"> 

と死ん機能、後でそれが一定値のつもりチェックだし、値がtrueの場合、それはつもりが別のものを実行しますコード:

var talk = document.getElementById("dead").value; 

function dead() { 
alert(talk); 
} 

フォームからの入力を保存する方法がわからないので、JSで検出され、ブールチェックの変数として使用されます。どうすればこの問題を解決できますか?フォームタグを使用してページを更新しなくてもうまくいく方法がある場合。

答えて

0

あなたはこのようなフォームの提出イベント処理できます。

document.getElementById('yourFormId').onsubmit = function(e) { 
    // your code goes here... 

    e.preventDefault(); // this will prevent the default operation of your form within this event 
    return false; 
} 

または関数を作成します。

function handleForm(e) { 
    // your code goes here... 

    e.preventDefault(); 
    return false; 
} 

そして、あなたのformタグにこれを追加します。

<form onsubmit="return handleForm(this);"> 
+0

ありがとうございました!関数の括弧に "e"を入れた後にe.preventDefault()を実行すると、正確に何が起こるかを説明できますか?なぜ "e"?それは何でもかまいませんか?私はpreventDefault()がJS内の既存の関数であると仮定します。 –

+0

'e'は、コールバック関数に渡し、後で関数本体で使用するパラメータです。 'e'はイベントの短縮です。もちろん、ieを使うことができます。代わりに 'event'を使用するか、JavaScriptの予約語でない場合には何でもできます(http://www.javascripter.net/faq/reserved.htm)。 – omerowitz

+0

それは、意味がある、ありがとう! –

0

をページをリフレッシュせずに値を送信できるようにするには、非同期JavaScript + XML(AJAX)を使用し、purあなたはAjaxについての良いドキュメントを見ることができますいくつかのフレームワークなしでJavascriptをe。 もちろん、Jqueryのようなフレームワークを使用して作業をより簡単にすることをお勧めします。

+0

もっと多くのフレームワークやライブラリを使わずに自分のスキルを磨くようにしています。 –

関連する問題