如何使用Jquery发送动态表单的数据

时间:2013-04-08 14:33:43

标签: jquery

我在一个网页中有多个dynamic forms,如下所示

<form name='login' id='login_1'>
<input type='text' name='username'/>
<input type='password' name='pwd'/>
<input type='submit' name='submit' id='submit_1' value='Login'/>
</form>
<form name='login' id='login_2'>
<input type='text' name='username'/>
<input type='password' name='pwd'/>
<input type='submit' name='submit' id='submit_2' value='Login'/>
</form>
.......
.......

此处id's是动态的,假设用户以第二种形式输入数据并提交,那么我需要将第二(仅)表单数据发送到服务器而不使用第三方jQuery plugins,此处我无法正确选择submit button id

使用serializeArray();发送数据是否安全?特别是对于登录过程?

2 个答案:

答案 0 :(得分:5)

一种方法是附加一个函数$('form')。submit()并将你的ajax POST放到那里的服务器代码中......

$('form').submit(function(){
    var thisForm = $(this);
    alert(thisForm.find("input[type=submit]").attr("id"));

    // perform ajax call here
    // $(ajax). ---

    return false;
});

以下是演示 http://www.bootply.com/61682

答案 1 :(得分:2)

除非您的表单没有文件,否则可以将表单输入序列化。

您可以使用ajax

捕获提交事件并传递数据
$("form").submit(function(){
   var action = $(this).attr("action");
   //You Can add an input type hidden to store form id, in case you need it at Server
   $(this).append("<input type='hidden' name='id' value='"+$(this).attr("id")+"'>");
   var data = $(this).serializeArray();
   $.post(action,data,function(data){
     //server response
     console.log(data);
   });
});