1

私は同じIDを持っており、2つのhtmlselectに名前を付けています。最初のhtmlselectを変更すると正しく機能しますが、2番目のhtmlselectを変更すると機能しません。私がここで間違っているかもしれないことを誰かが指摘できますか?どうもありがとう。これが私のコードです:

<html>
<head>
<title>the title</title>
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
   <script type="text/javascript" language="javascript">
  $(document).ready(function() {
      $("#name").change(function(){
          $.post(
             "data.php",
             $("#testform").serialize(),
                 function(data) {
                $('#stage1').html(data);
             }
          );
          var str = $("#testform").serialize();
          $("#stage2").text(str);
      });
   });
   </script>
</head>
<body>
   <div id="stage1" style="background-color:blue; color: white">
          STAGE - 1
   </div>

<form id="testform">
 <table>
 <tr>
 <td><p>Fruit:</p></td>
 <td>
     <select id="name" name="name[]">
         <option>Apple</option>
         <option>Mango</option>
         <option>Orange</option>
         <option>Banana</option>
     </select>
 </td>
</tr>
 <tr>
 <td><p>Fruit:</p></td>
 <td>
     <select id="name" name="name[]">
         <option>Apple</option>
         <option>Mango</option>
         <option>Orange</option>
         <option>Banana</option>
     </select>
 </td>
</tr>
</table>
</form>
</body>
</html>

PHPコード:

<?php
$fruit=$_REQUEST["name"];
$n = count($fruit);


for($i=0;$i<$n; $i++)
{
    echo $fruit[$i]."<br/>";
}
?>
4

4 に答える 4

3

あなたidのは一意である必要があります-IDセレクターを使用すると、IDで最初に出くわした要素が常に/のみ取得されます

使用できます

$('select[name="name[]"]') 

両方の選択を取得するには

于 2012-10-08T21:34:14.150 に答える
1

それは

$("#name")  // id selector

IDを持つ最初の要素のみを選択し、2番目の要素を無視します。

ページのIDは一意である必要があります。代わりにクラスに置き換えてみてください。正常に機能するはずです。

$(".name") ;//代わりにid="name"をclass="name"に変更します

于 2012-10-08T21:34:27.520 に答える
1

id属性は一意であり、1つの要素を選択するためにのみ使用できます。最初のものが見つかると、それ以上存在することは期待されません。

複数の要素をグループ化する場合は、属性を使用しclassます。この属性は、を使用してターゲティングできます.classname

于 2012-10-08T21:35:08.117 に答える
0
  1. IDは一意である必要があります。その理由は、javascriptが検出した「id」を持つ最初の要素のみを検出するためです。

    $('#name')
    

    上記のセレクターコードは、IDが「名前」の最初の要素を選択します。

  2. クラスはこの目的で使用されます。Javascriptは、遭遇した「クラス」を使用して要素の配列を作成します。

    $('.name')
    

    上記のセレクターコードは、クラスが「名前」であるすべての要素を選択します。これはあなたの質問に対する可能な解決策になる可能性があります。つまり、どちらの場合も2つのselect要素のいずれかを変更すると、「change」イベントが発生します。

于 2012-10-08T23:29:44.067 に答える