0

我在一个页面上有多个相同的表单,我正在尝试传递一个隐藏字段的值,该隐藏字段的 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");
    });
});​

示例

<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 &amp;#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>
4

3 回答 3

0

我终于解决了。因为我也将 idJ​​ueur 传递给表单,所以这就是我选择它的地方。

    <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>
于 2012-08-11T11:18:30.427 回答
0

this获取使用关键字提交的表单,并使用以下技术之一在表单中查找元素:

$(this).children('#idJoueur').val();

或者

$(this).find('#idJoueur').val();

我实际上不确定一个是否比另一个更好。他们都为我工作。

于 2012-08-10T21:13:29.403 回答
0

而不是var tramodifier = $("#idJoueur").val();你应该这样做:

var tramodifier = $(this).find('#idJoueur').val(); 

此外,您应该将属性从 id 更改为 class。然后选择器将改为 .idJoueur。

.find在元素的子元素中进行搜索。通过像这样使用提交表单的上下文,您可以轻松提取正确的隐藏字段。文档:http ://api.jquery.com/find/

于 2012-08-10T21:13:49.720 回答