2013-09-23 53 views
0

我正在学习javascript,但我仍然没有看到本书的章节可以回答我的问题,所以如果有人能让我走上正轨,我将非常感激。如何用一个javascript函数管理两种形式?

这里的情况是:

我使用jQuery提交表单。然而,我需要把两种形式(同类,但指的是不同的对象),我想使用相同的jQuery功能来提交我选择的。

这是jQuery函数:

<script type="text/javascript" src="jquery.min.js"></script> 
<script type="text/javascript"> 
$(function(){ 
$(".submit").click(function(){ 
    var name = $("#student").val(); 
    var mark = $("#mark").val(); 
    var dataString = 'student='+ student + '&mark=' + mark; 

    $.ajax 
    ({ 
     type: "POST", 
     url: "records.php", 
     data: dataString, 
     success: function() 
     { 
      $('.success').fadeIn(200).show(); 
     $('.error').fadeOut(200).hide(); 
     } 
    }); 

    return false; 
}); 
}); 
</script> 

这些都是我想传递给取决于一个我点击上面的函数形式。

<form method="post" name="form"> 
<input type="hidden" id="student" name="student" value="Mandy" > 
Mark: <input size="2" id="mark" name="mark" value="1" type="text"> 
<input type="submit" value="Submit" class="submit"/> 
</form> 

<form method="post" name="form"> 
<input type="hidden" id="student" name="student" value="Fred" > 
Mark: <input size="2" id="mark" name="mark" value="1" type="text"> 
<input type="submit" value="Submit" class="submit"/> 
</form> 

感谢

+5

您有重复的ID,这是会导致问题。 ID的**必须是唯一的! – tymeJV

+0

你的问题是什么?有没有工作,而不是工作等? – Neal

回答

0

嗯,第一件事的第一个 - 你会在页面上相同的ID对一事无成。改变studentmark的类ID用(不必须是唯一的):

​​

然后jQuery是很简单 - 找到最近的形式,并寻求通过班级学生和标志(作用域为形式):

$(".submit").click(function(){ 
    var $form = $(this).closest('form'); 
    var student = $(".student", $form).val(); 
    var mark = $(".mark", $form).val(); 
    var dataString = 'student='+ student + '&mark=' + mark; 

    $.ajax 
    ({ 
     type: "POST", 
     url: "records.php", 
     data: dataString, 
     success: function() 
     { 
      $('.success').fadeIn(200).show(); 
     $('.error').fadeOut(200).hide(); 
     } 
    }); 

    return false; 
}); 

活生生的例子:http://jsfiddle.net/6Lc8R/

+0

太棒了!非常感谢Jamiec! – user2807755