JQuery采用了错误的值

时间:2014-04-12 15:04:20

标签: javascript php jquery

我认为一个简单的问题: - )

<form id="upload" method="post" name="form">  
<input id="id<?php echo $a; ?>" class="id" name="id" type="text" value="<?php echo $id_submit; ?>" >
<input style="margin-top:-5px;width:29px;" class="submit" type="image" src="save.jpg">
</form>

源代码看起来像像这样:

表单1:

<form id="upload" method="post" name="form">  
<input id="id1" class="id" name="id" type="text" value="12345" >
<input style="margin-top:-5px;width:29px;" class="submit" type="image" src="save.jpg">
</form>

表格2:

<form id="upload" method="post" name="form">  
<input id="id2" class="id" name="id" type="text" value="65432" >
<input style="margin-top:-5px;width:29px;" class="submit" type="image" src="save.jpg">
</form>

点击save.jpg后,它调用我的jquery-function:

$(document).ready(function() {                              
                           $( "#upload" ).on("submit", function(e) {

                               e.preventDefault();

                                               var id = $('.id').val();
                                               …..

问题在于,当我点击表单2中的save.jpg时,它取值 12345 而不是 65432

我该如何解决?

3 个答案:

答案 0 :(得分:2)

表单必须是唯一的

<form id="upload" method="post" name="form">

这就是为什么它使用目标id获取dom结构中的第一个元素,更改第二个表单的id。

当你这样做时

var id = $('.id').val();

给定的类有多个元素。你可以试试这个

var id = $(this).find('.id').val();

快乐编码:)

答案 1 :(得分:1)

使用更广​​泛的选择器来定位两个表单,然后找到当前提交表单的ID:

$( "form" ).on("submit", function(e) {

    e.preventDefault();

    var id = $(this).find('.id').val();//"this" is the current form

答案 2 :(得分:0)

有效:

var id = $(this).('.id').val();

感谢您的帮助。