在jquery中以提交的形式捕获值

时间:2012-08-10 21:02:49

标签: jquery

我在页面上有多个相同的表单,我试图传递一个隐藏字段的值,该字段具有使用以下代码提交的特定表单的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 &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>

3 个答案:

答案 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>