获取字段集的输入通过JavaScript或jQuery的价值

问题描述 投票:0回答:2

我需要在所述元件由不同的值仅定义一个字段,以检查特定的输入:

      <fieldset class="collapsible">
        <legend onclick="toggleFieldset(this);">Opzioni</legend>
        <div style="">
          <table class="options">
                <td class="card-fields">
                    [...]
                    <label class="floating"><input type="checkbox" name="f_status[]" id="f_status_" value="5" />Chiuso</label>
                    <label class="floating"><input type="checkbox" name="f_status[]" id="f_status_" value="6" />Rifiutato</label>
                    [...]
      </fieldset>

我试图通过类似的jQuery的许多方面:

$("#f_status_").each(function(){
   if (this.value == 2) {
      this.trigger("click");
   }
})

但没有运气。任何帮助吗?

谢谢。

javascript jquery html fieldset
2个回答
0
投票

你不能有多个元素重复使用相同的id。这是犯罪HTML。使用类来代替,而.each().trigger()工作,把它包里面$()

$(function() {
  $(".f_status_").each(function() {
    if (this.value == 5) {
      $(this).trigger("click");
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label class="floating"><input type="checkbox" name="f_status[]" class="f_status_" value="5" /> Chiuso</label>
<label class="floating"><input type="checkbox" name="f_status[]" class="f_status_" value="6" /> Rifiutato</label>

$(function() {
  $(".f_status_").each(function() {
    if (this.value == 6) {
      $(this).trigger("click");
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label class="floating"><input type="checkbox" name="f_status[]" class="f_status_" value="5" /> Chiuso</label>
<label class="floating"><input type="checkbox" name="f_status[]" class="f_status_" value="6" /> Rifiutato</label>

在情况下,如果你不能改变的HTML,我完全不赞成,因为这是错误的HTML,你可以这样做:

$(function() {
  $('[name="f_status[]"]').each(function() {
    if (this.value == 6) {
      $(this).trigger("click");
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label class="floating"><input type="checkbox" name="f_status[]" id="f_status_" value="5" /> Chiuso</label>
<label class="floating"><input type="checkbox" name="f_status[]" id="f_status_" value="6" /> Rifiutato</label>

我永远不会无论如何推荐这种方式。


0
投票

编辑:使用@Praveen库马尔Purushothaman的答案。

首先,你不应该使用ids不是每个文档一次。

至于你的JavaScript代码:一个value<input>返回为一个String,而不是作为一个Number。另外,如果你想使用trigger,你必须包装的元素一个jQuery集合。请参见下面的工作示例:

$('.card-fields_input').each(function() {
  if (this.value === '2') {
    $(this).trigger('click');
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<fieldset class="collapsible">
  <legend onclick="toggleFieldset(this);">Opzioni</legend>
  <div style="">
    <table class="options">
      <tr>
        <td class="card-fields">
          <label class="floating">
            <input type="checkbox" name="f_status[]" class="card-fields_input" value="1" />
            Chiuso
          </label>
          <label class="floating">
            <input type="checkbox" name="f_status[]" class="card-fields_input" value="2" />
            Rifiutato
          </label>
        </td>
      </tr>
    </table>
  </div>
</fieldset>
© www.soinside.com 2019 - 2024. All rights reserved.