2013-07-07 53 views
1

我刚刚开始使用JQuery和AJAX。我正在练习使用JQuery在表单提交时使用表单值,并使用AJAX通过PHP脚本处理数据。这一切都非常好,也就是说,直到我在页面中添加另一个表单。无论我提交什么表单,都会提交页面上第一个表单的数据。我如何才能从正在提交的表单中选择表单和值?用JQuery选择正确的元素

这里是我的代码:

<html> 

<head> 
<title> JQUERY and AJAX </title> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 

<!-- JQUERY script to submit the form without page refresh !--> 
<script> 
$(document).ready(function() { 

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

     var name = $("input#name").val(); 

     var dataString = 'name='+ name; 
     $.ajax({ 
      type: "POST", 
      url: "ajax_submit.php", 
      data: dataString,      
     }); 

     $("input#name").val("");    

     return false; 

    }); 
}); 
</script> 

</head> 

<body> 

<form name="form" action=""/> 
    <input type="text" name="name" id="name" autocomplete="off"/> 
    <input type="submit" name="submit" id="submit"/> 
</form> 

<form name="form" action=""/> 
    <input type="text" name="name" id="name" autocomplete="off"/> 
    <input type="submit" name="submit" id="submit"/> 
</form> 

</body> 

</html> 

谢谢!

+3

给各自形成一个唯一的ID,然后使用该 – 2013-07-07 20:56:11

+0

至于你的功能性学习的一个小窍门:使用.serialize()当您希望通过AJAX提交表单。它会为你节省很多时间。 – Cedric

回答

3

你知道如何使用CSS选择器吗?你可以使用css选择器作为jquery选择器。也就是说,如果你给各自形成一个id属性,你可以在以后类似这样的选择呢:

$('#the_forms_id').submit(); 

哪里形式ID是HTML属性您选择的形式,这样

<form name="form" action="" id = "the_forms_id"/> 

只需使用PHP设置不同的表单ID的

此外,请注意你几乎可以使用任何你能想到的CSS选择器,以及jQuery特定的选择器。你可以看到他们here

如果您不知道如何使用基本选择器,请使用this指南。

如果你想选择一个动态创建的表单(如你所评论的), 实现取决于添加表单的方式以及需要如何捕获表单。 你可以使用php来动态给它们不同的id(例如使用一个计数器)。另外,当存在少量元素时,可以使用jquery选择器来选择第一个或最后一个元素(或任何其他元素)。退房the :last selector

$('form :last').serialize().submit() 
+0

我知道如何使用选择器。但是如果选择器是动态的,那么我该如何编写我的JQuery选择器?谢谢 – user2320500

+0

编辑答案,希望这有助于,也检查链接到jQuery选择器列表,我相信你会发现那里你需要一个确切的。 – Skarlinski