2017-01-26 17 views
1

もう一度、非常にプログラミングに新しい、jqueryとajaxを開始します。あまり問題なくjQueryを使用することができましたが、今はユーザー入力に基づいてAPIコールを公開するためにajaxに拡張したいと考えています。以下のスニペットでは、フォーム送信用のjqueryハンドラのセクションを貼り付けました。 jquery関数(.val())内のさまざまな入力をconsole.logに記録すると、値が表示されます。関数で値を作成しようとして、入力の.val()に設定しようとすると、私は定義されません。私はどんな愚かさですか? jqueryののHTMLフォームの入力をjquery変数に保存する問題

セクション:

$(document).ready(function(){ 

     $("#user_in").submit(function() { 

      var city=$(city).val(); 
      var state=$(state).val(); 
      var year=$(year).val(); 
      var month=$(month).val(); 
      var day=$(day).val(); 

      console.log(city); //returns undefined 
      console.log($(city).val()); //returns the form submission 

        <div id="form_div"> 
        <form id="user_in" action="index.html" method="post"> 
          <p>Please enter your city name:</p><input type="text" name="city" id="city"><br> 
          <p>Please enter your two letter state:</p><input type="text" name="state" id="state"><br> 
          <p>Please enter the year of history (YYYY):</p><input type="text" name="year" id="year"><br> 
          <p>Please enter the month (MM):</p><input type="text" name="month" id="month"><br> 
          <p>Please enter the day (DD):</p><input type="text" name="day" id="day"><br> 
          <input type="submit" value="Submit"> 
         </form> 
        </div> 
+2

HTMLを表示できますか?あなたのセレクタが間違っているようです –

+1

HTMLコードを共有すると、HTML要素から値を取得する方法をお手伝いします – prtdomingo

+0

grrrr。私はまだこのインターフェースを知らない。 HTMLコードをレンダリングせずに入力するにはどうすればよいですか? –

答えて

2

今私はあなたのHTMLがどのように見えるかわからないが、私はあなたの要素とそこにIDやクラスを見てお勧めします。

市、州、年、月、日はあなたのコードは次のようになります要素のIDある場合:名前はクラスが、その後に#を変更している場合

$("form").submit(function() { 

     var city=$('#city').val(); //gets you the value from an element with id="city" 
     var state=$('#state').val(); 
     var year=$('#year').val(); 
     var month=$('#month').val(); 
     var day=$('#day').val(); 

     console.log(city); 
     console.log($('#city').val()); 
}) 

。すべてのjQueryコールで使用できます。あなたのinput要素から基づい

2

、あなたがこの

var city = $('#city').val();

を通じて、それはjQueryのを使用して、値の取得することができますこれは、基本的に、あなたはそれがid属性だことでinput値を取得していることを意味します。

それとも、またそれをこのように行うことができます。

var city = $('input[name="city"]').val();

基本的に、あなたのHTMLを共有しているので、あなたはそれでinput値を取得していることname属性

1

だということを意味し、これを試してみてください代わりに:

$(document).ready(function(){ 

    $("form").submit(function() { 

     var city=$("#city").val(); 
     var state=$("#state").val(); 
     var year=$("#year").val(); 
     var month=$("#month").val(); 
     var day=$("#day").val(); 

     console.log(city); //returns undefined 

私はあなたに強くお勧めします彼のページについてjQuery Selectors

関連する問題