1

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();,尤其是登录过程?

4

2 回答 2

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

于 2013-04-08T14:48:32.067 回答
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);
   });
});
于 2013-04-08T15:15:56.790 回答