使用具有相同值的不同ID更新下一个输入

时间:2017-09-07 12:06:41

标签: jquery

这是我的代码。我对输入元素有不同的ID,我的想法是将相同的值更新为所有输入。我有想法如何更新所有输入onchange但我需要更改下一个但不是之前的。示例假设如果我有20个输入,如果我更改第8个输入,则应将值更新为从第8个到第20个输入的所有输入,但不应更改前7个输入。我坚持在这里如何编写代码。

 <html>
  <head>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
   <script>
 $(document).ready(function(){

     $('.tc').change(function(){

          var id=$(this).attr("id"); 
          var val=$(this).val();
          var tot=$('.tc').length;


         });    


       });
 </script>
</head>
  <body>
     <?php
         include('connect.php');
          $yr=$_POST['year'];
          $sm=$_POST['sem'];
          $br=$_POST['branch'];
          $k=0;

         $sql="select * from intstd where year='$yr' and sem='$sm' and branch='$br'";
         $query=mysql_query($sql);
         echo"<table>";
          while($row=mysql_fetch_array($query))
          {
             $k++;
             echo"<tr>";
             echo"<td>$k</td>";
             echo"<td>". $row['rollno']."</td>";
             echo"<td><input type='text' name='a[]' class='tc' id='$k' /></td>";
             echo"<td><input type='text' name='b[]' id='$k' /></td>";
              echo"</tr>";
            }
           echo"</table>";
          ?>
        </body>
       </html>

3 个答案:

答案 0 :(得分:1)

在这里,您将使用示例解决方案https://jsfiddle.net/6mxo5zu1/

$('input[type="text"]').change(function(){
  var that = this;
  $(this).nextAll('input[type="text"]').each(function(){
    $(this).val($(that).val());
  });
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="text-1" />
<input type="text" id="text-2" />
<input type="text" id="text-3" />
<input type="text" id="text-4" />
<input type="text" id="text-5" />
<input type="text" id="text-6" />
<input type="text" id="text-7" />
<input type="text" id="text-8" />
<input type="text" id="text-9" />
<input type="text" id="text-10" />
<input type="text" id="text-11" />
<input type="text" id="text-12" />

我有12个input textbox附加了唯一的id

其中一个文本框值更改,input textbox值的其余部分将更新仅下一个而不是之前的

无需在此处使用id

希望这会对你有所帮助。

答案 1 :(得分:0)

只需为您的输入设置唯一的ID(例如,以input_0input_1等形式设置)并尝试按如下方式循环:

for (var i=first_index_to_modify; i<=last_index_to_modify; i++) {
  $('#input_'+i).val('myval');
}

答案 2 :(得分:0)

我看到你的输入有顺序ID,如1,2,3等等。

你可以这样做。

var i = 0;
for(i = 1;i <$('.tc').length; i++ ) {
    if ($('.tc')[i].attr('id') >= id) {
        $('.tc')[i].val(val);
    }
}