0

そうです、ページにこのような複数のフォームがあります(編集、これがPHPで使用されているかどうかは明確ではないため、PHPタグとechoタグに追加しました):

 <?PHP
 echo "<form action="" method="post" id="form$field2">";
 echo "<select id="popup" name="state" >";
 echo "<option class="apple-hidden" value="$statitem1">$statitem1</option>";
 echo "<option class="apple-hidden" value="$statitem2">$statitem2</option>";
 echo "<option class="apple-hidden" value="$statitem3">$statitem3</option>";
 echo "<option class="apple-hidden" value="$statitem4">$statitem4</option>";
 echo "<option class="apple-hidden" value="$statitem5">$statitem5</option>";
 echo "<option class="apple-hidden" value="$statitem6">$statitem6</option>";
 echo "<option class="apple-hidden" value="$statitem7">$statitem7</option>";
 echo "<option class="apple-hidden" value="$statitem8">$statitem8</option>";
 echo "<option class="apple-hidden" value="$statitem9">$statitem9</option>";
 echo "</select>";
 echo "<input type="hidden" name="bnum" value="$field2,$user">";
 echo "</form>";
 ?>

そして、フォームが変更されるたびにAJAXでPOSTデータを送信し、フォームが緑色で含まれているテーブルセルをオンにするように、いくつかのjavascriptがあります。

<script type="text/javascript">
    var bnum;
    bnum = '$formname',

    $('form').change(function() {
        console.log(bnum);      

        $.ajax("http://myApp.example.org/alert?title=Test%20from%20AJAX&message=this%20is%20a%20message%20from%20an%20AJAX%20request");
        $(this).closest("td").css("background", "#01DF01");

        $.ajax({ 
            type: 'post',
            url: 'process.php?item1=$urlvar3',
            data: $(this).serialize(),
            success: function() {
            }
        });
        return false;
    });  
</script>

ここでやりたいことは、ドロップダウン リストの新しい値を取得してコンソールに出力することです。私は試した:

 console.log($("#popup").val());

これは機能しますが、ページの最初のフォームに対してのみです。私ができるようにしたいのは、送信しているフォームからデータを取得することです。

 console.log($(this).val());

しかし、これはNULLを返します。

どんな助けでもいつも感謝しています。

4

4 に答える 4

0

idドキュメント内で一意である必要があります。

より良いアクセサは

$('#popup',this)

または重複なしid(および1つの選択のみを想定)

$('select',this)
于 2013-04-11T13:27:56.433 に答える
0

これを試して:

console.log($(this).find("#popup").val());
于 2013-04-11T13:25:54.843 に答える
0

ページで同じ ID を複数回使用しているようですが、これは無効です。ID は一意である必要があります。代わりに、ID 属性を完全に削除して、名前で検索します。

console.log($(this).find('select[name="popup"]').val());
于 2013-04-11T13:28:27.650 に答える