2017-09-26 75 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还有一个函数$.serialize,它可以将表单转换为编码的URL字符串,这可能是您希望的最标准格式。您可以轻松将其转换为JSON或JS对象。

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

这帮了我很多。我需要知道输入的一些属性,就像“类型”和“名称”一样,但是用你给我的方法帮助我很多。谢谢,@Bricky –