选择

时间:2016-08-05 08:36:33

标签: javascript jquery

我有一些复选框(101),标签应根据选择输入进行更改。 JS我只运行一个,这是合乎逻辑的。虽然我对jquery函数不太熟悉,但我不知道如何处理所有101个复选框。

输入:

<?php

    for ($i = 1; $i < 102; $i++): //adjust this number to whatever number of checkboxes you want
        echo '<div class="each_checkboxes">';
        //  $j = sprintf('%04u', $i);

        echo '<label id="contact" for="checkbox"></label>';
        echo '<input type="checkbox" name="tape[]" id="checkbox" value=""/>';

        echo '</div>';

    endfor;
?>

选择:

<select id="method" name="server" class="custom-dropdown__select custom-dropdown__select--white" required>
    <option value="0" default>Choose server</option>
    <option value="server1">server 1</option>
    <option value="server2">server 2</option>
</select>

js:

$(document).ready(function () {
    $('#method').change(function () {
        var method = $('option:selected').val();

        if (method == "server1") {

            $('#contact').text("MA" + i);

        } else if (method == "server2") {

              $('#contact').text("SAS" + i);

        }
    });

});

4 个答案:

答案 0 :(得分:1)

您需要使用A*X*transpose(A) -X + Q = 0 -> X = dlyap(A,Q) A*X*B - X + C = 0 -> X = dlyap(A,B,C) 代替class,因为id对每个元素都应该是唯一的。尝试以下。

<强> PHP:

id

<强> jQuery的:

<?php
    for ($i = 1; $i < 102; $i++): 

        echo '<div class="each_checkboxes">';

        echo '<label class="contact" for="checkbox'.$i.'"></label>';
        echo '<input type="checkbox" name="tape[]" id="checkbox'.$i.'" value=""/>';

        echo '</div>';

    endfor;
?>

答案 1 :(得分:0)

您正在引用jQuery选择器中的id属性,它只会在您的dom中查找第一个匹配项您需要为您的标签分配一个类,并在更改标签文本时引用该类,然后这将起作用。

<?php

  for ($i = 1; $i < 102; $i++): //adjust this number to whatever number of checkboxes you want
      echo '<div class="each_checkboxes">';
    //  $j = sprintf('%04u', $i);

      echo '<label id="contact" class="contact" for="checkbox"></label>';
      echo '<input type="checkbox" name="tape[]" id="checkbox" value=""/>';

      echo '</div>';

endfor;
  ?>

并且在jQuery中只使用这样的类选择器;

$(document).ready(function () {
    $('#method').change(
    function () {
        var method = $('option:selected').val();

        if (method == "server1") {

            $('.contact').text("MA" + i);

        } else if (method == "server2") {

              $('.contact').text("SAS" + i);

        }
    });

});

那就是它。

答案 2 :(得分:0)

使用标签类而不是id

<?php

  for ($i = 1; $i < 102; $i++): //adjust this number to whatever number of checkboxes you want
      echo '<div class="each_checkboxes">';
    //  $j = sprintf('%04u', $i);

      echo '<label class="contact" for="checkbox"></label>';
      echo '<input type="checkbox" name="tape[]" id="checkbox" value=""/>';

      echo '</div>';

endfor;
  ?>

js代码是

 $(document).ready(function () {
    $('#method').change(
    function () {
        var method = $('option:selected',this).val();

        if (method == "server1") {

            $('.each_checkboxes label.contact').html("MA" + i);

        } else if (method == "server2") {

              $('.each_checkboxes label.contact').html("SAS" + i);

        }
    });

});

答案 3 :(得分:0)

使用“class”作为复选框的标签而不是“id”。基本上,元素的“id”应该是唯一的。但是,类,多个元素可以具有相同的类。

所以,标签应该是这样的:

<label class="contact" for="checkbox"></label>

然后你的onchange方法应该是这样的:

$('#method').change(
  function () {
      var method = $('option:selected').val();
      if (method == "server1") {
        $('.contact').text("MA" + i);
      } else if (method == "server2") {
        $('.contact').text("SAS" + i);
      }
});