我在页面上有多个相同的表单,我试图传递一个隐藏字段的值,该字段具有使用以下代码提交的特定表单的id idJoueur。目前,无论点击哪一个,我只是成功地传递了第一个的值。
$(function() {
$("form").submit(function(e) {
var tramodifier = $("#idJoueur").val(); //variable to be populated from the
//specific form which is posted
alert(tramodifier); //alert for testing purposes
$.post($(this).attr("action"), $(this).serialize(), function(data) {
$("#result").html(data);
});
e.preventDefault();
$("tr^=#" + tramodifier).css("background-color", "grey");
});
});
html的例子
<form action="/Admin/Match/LaCreation/1" id="1" method="post">
<td style="width: 1px;">
<input data-val="true" data-val-number="Le champ Int32 doit &#234;tre un nombre." data-val-required="Le champ Int32 est requis." id="idJoueur" name="idJoueur" type="hidden" value="1" />....other stuff
<input id=1 class='ajax_multi_submit' type="submit" value="Créer" />
</p>
</td>
</form>
<div id="result"></div>
答案 0 :(得分:0)
获取使用this
关键字提交的表单,并使用以下技术之一在表单中查找元素:
$(this).children('#idJoueur').val();
或
$(this).find('#idJoueur').val();
我实际上不确定一个人是否优于另一个人;他们都为我工作。
答案 1 :(得分:0)
而不是var tramodifier = $("#idJoueur").val();
你应该这样做:
var tramodifier = $(this).find('#idJoueur').val();
此外,您应该将属性从id更改为class。然后选择器将成为.idJoueur。
.find
在元素的子元素中进行搜索。通过使用这样提交的表单的上下文,您可以轻松地提取正确的隐藏字段。文档:http://api.jquery.com/find/
答案 2 :(得分:0)
我终于解决了它。因为我也将idJoueur传递给了表单,这就是我把它拿起来的地方。
<script type="text/javascript">
$(function () {
$("form").submit(function (e) {
var tramodifier = $(this).attr("value");
$.post($(this).attr("action"),
$(this).serialize(),
function (data) {
$("#result").html(data);
});
e.preventDefault();
$("tr^=." + tramodifier).css("background-color", "grey");
});
});
</script>