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");
    });
});​

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>
4

3 に答える 3

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 に答える
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>
于 2012-08-11T11:18:30.427 に答える