2016-05-18 11 views
0

信じられないほど単純です。同様の質問がされましたが、私はそれを働かせることはできません。私はjavascriptの中級初心者ですが、jQueryについては全く新しいものです。私はちょうど1つのテキスト入力を変数に(後でAPIサブミッションに使うために)キャプチャし、それをWebページに表示してキャプチャしたことを確認したいだけです。私はこのためにjQueryを理解するために値を取得するためにjavascriptを使用することを避けようとしています。フォーム、ショー、ディスカードからテキストをHTML形式で表示

マイHTML:

<form id='myForm'> 
    Zip: <input type="text" id='zip' /> 
    <input type="submit" value="Submit" id='submit' /> 
    <p id='showZip'>Not here yet</p> 
</form> 

私のjQuery:

$(document).ready(function() { 
    $('#submit').click(function() { 
    var myZip = $('#zip').val(); 
    $('#showZip').html(myZip); 
    }); 
}); 

編集:私はそれが実際に動作しません、と私は簡単にHTMLを参照してください、それがリセットされること、追加することを意味しました。

+0

はあなたのコードの所望の動作、または望ましくないものを教えてください。これまでのところ、フォームの送信を避けていないと伝えることができます。 '.click'の中の関数は、イベントオブジェクトである引数をとり、' ev'という名前をつけて、 'ev.preventDefault()'を呼び出します。ページを提出してリロードしたり、そのようなことをしません。 –

+0

申し訳ありませんが、非常に貧弱なフォーム、私は振る舞いを追加するのを忘れました。私はエントリーを編集しています。私はあなたが私の問題になっていると思う。上記をご覧ください。 – hikinthru

答えて

1

preventDefault();(​​)を使用してください。フォームが送信されてリセットされないようにしてください。

は、そう、次のようにコードを更新するには:何かが間違っている場合

$(document).ready(function() { 
    $('#submit').click(function(event) { 

    event.preventDefault(); 

    var myZip = $('#zip').val(); 
    $('#showZip').html(myZip); 
    }); 
}); 
+0

これは私が探していたものです。私は前にそれを見ていたが、これのために再びそれを見つけることができなかった。ありがとう! – hikinthru

3

一般に、jQueryとJavascriptは、<input>のような機能を持つ要素に格納されていない限り、ページの送信を継続できず、再読み込み時にその値をページに戻します。 (あなたの好みのサーバー側の技術を使用して)。

すでにあなたの価値を保持する要素を持っているので、あなたは、サーバー側のコード内の値にアクセスできるようになりますname属性追加することを検討:あなたのコード

について

<!-- The name attribute will post the value in this to a key named 'zip' --> 
<input type="text" id='zip' name='zip' /> 

あなたのフォームは実際には正しいはずですが、フォームが送信されたときにページのマークアップ(つまり、showZip要素のHTMLを設定する)が変更された場合、以下のように消去されます:

enter image description here

実際にページがサーバーに送信された結果、実際のページが更新される直前に置換が行われていることがわかります。

+0

私は次のように置き換えました:var myZip = $( '#zip')。val(); var myZip = $( 'input [name = "zip"]')。同じ結果が得られました。 – hikinthru

+0

と 'zip'の 'name'属性をテキスト入力に追加しました。 – hikinthru

+0

あなたの前のコードは問題ありませんでした(ただし、入力にname属性を追加する必要があります)。これはおそらくサーバ側で解決すべき問題であることは注目に値する。あなたが '

'を投稿すると、 'Request [" zip "]'、 '$ _POST [" zip "]'のようなものを使って読むことができるはずの 'zip'キーで値が送られます。 'params [:zip]'など(あなたの言語は異なる場合があります)。使用しているテクノロジーによっては、 'showZip'要素の内容をサーバーにポストされた値に置き換えてください。それ以外の場合は、「ここにはまだありません」と表示してください。それは理にかなっていますか? –

関連する問題