2017-09-26 11 views
1

私がしようとしているのは、誰かが送信ボタンをクリックしたときにすべての入力とデータを取得することです。クリックでjQueryが値を返さない

私のコードのHTMLはこれです:それは最高の使用フォームを送信するためのボタンや入力タグの場合

<form id="form" action="index.php" method="POST" class="register" name="Register"> 
    <label>Patient Name:</label> 
    <input id="pname" name="pname" placeholder="John Doe" type="text" data-role="justText" value=""><br><br> 
    <label>Phone Number:</label> 
    <input id="ptel" type="tel" name="ptel" value=""><br><br> 
    <label>Email:</label> 
    <input id="pemail" placeholder="[email protected]" type="email" value=""><br><br> 
    <button id="submit" class="submit" type="submit" name="register">Registrar</button> 
</form> 

は知ってはいけません。そして、私がやろうとしています何を処理するためのjQueryのはこれです:だから

jQuery.fn.extend({ 
     hello: function() { 

      submitbutton = $(this).find('button').attr('id'); 
      $inputs = $(this).find('input'); 

      knowInputs = function() { 
       $inputs.each(function() { 
        console.log($(this).attr('name')); 
       }); 
      } 

      $('#'+submitbutton).on('click', function() { 
       knowInputs(); 

      }) 
      return this; 
     } 
    }); 

、私は、フォームのIDを入れて、このように機能を初期化:

$(#form).hello(); 

PD:私は、コードknowInputsを置く場合オン(クリック)の外側では、正常に動作するようです。私の問題は、送信ボタンをクリックしたときにすべてを集めようとしているときです。

助けてください。前もって感謝します!

+2

フォームの送信イベントでフォームデータを取得するのはなぜですか。これのためにJQueryを拡張する必要はありません。 –

答えて

2

フォームには、ネイティブのJavascriptイベントsubmitがあります。 jQueryには、フォームをコード化されたURL文字列に変換する関数$.serializeもあります。これはおそらく最も標準的な形式です。これをJSONまたはJS Objectに簡単に変換できます。

$('#form').submit(function(e){ 
    e.preventDefault(); 
    return $(this).serialize(); 
}); 
+0

それは私をたくさん助けます。私は入力の属性を "型"と "名前"のように知る必要がありますが、私が与えたアプローチでは私を多く助けました。ありがとう、@ブリック –

関連する問題