JS $('form').change(function())只触发第一个表单项

JS $('form').change(function() only triggers on first form item

本文关键字:第一个 表单 change form JS function      更新时间:2023-09-26

根据我昨天的问题,我现在已经成功地使下面的代码工作了。它允许我更改第一个表单项并将其提交给后台的'process.php',并将字段变为绿色。然而,触发器只作用于第一个表单项,在本例中是"cstate"。当"托管"发生变化时,它不会触发。如果你改变了配置,然后声明,那么这两个表单都可以提交,所以很简单,当配置改变时,。change函数不会触发。我对JS不够好,不知道为什么它不工作,所以我很感激你能给我的任何帮助。

谢谢!

 $sql = "select * from `$table1`";
 $result = mysql_query ($sql) or die(mysql_error());
 while ($row = mysql_fetch_array($result)) 
 { 
   $carid = $row["car_id"]; 
   $carnum = $row["carnum"]; 
   $carlocation = $row["carlocation"];
   $carstate = $row["carstate"];

  $formname = "#form".$carid;
  print '<script type="text/javascript">';
  print "        var cnum;";
  print "        cnum = '$formname',";
  print "        
  $('form').change(function() 
  {
  console.log(cnum);
  $.ajax({ 
  type: 'post',
  url: 'process.php',
  data: $(this).serialize(),
  success: function() {
  }
   });
  return false;
   }); 
  </script>";
   echo "<table>";
   echo "<tr id='$carid'>";
   echo "<td>$carnum</td>";
   echo "<td><form action='' method='post' id='form$carid'>";
   echo "<select id='popup' name='cstate'>";
   echo "<option value='In-Service-Bay'>In Service Bay</option>";
   echo "<option value='Awaiting-Service'>Awaiting Service</option>";
   echo "<option value='Service-Complete'>Service Complete</option>";
   echo "</select></td>";
   echo "<select id='popup' name='clocation'>";
   echo "<option value='Carpark-1'>Carpark-1</option>";
   echo "<option value='Carpark-2'>Carpark-2</option>";
   echo "<option value='Carpark-3'>Carpark-3</option>";
   echo "</select></td>";
   echo "</form></tr>";
  }
  echo "</table>";

使用.on()并在document.ready.中换行代码

$(document).ready(function(){
  $('form').on('submit',function() 
  {
     //code here
  });
});

也将此代码置于while循环之外。另外窗体没有更改事件尝试使用.submit()

通过为每个输入选择使用单独的表单来解决这个问题。

感谢所有试图帮助我的人。

亚当