我需要检查字段集中的特定输入,其中仅通过不同的值来定义元素:
<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");
}
})
但是没有运气。有帮助吗?
谢谢。
答案 0 :(得分: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>
我永远不会推荐这种方法。
答案 1 :(得分:0)
编辑:使用@Praveen Kumar Purushothaman的答案。
首先,每个文档不应该使用id
一次。
关于您的JavaScript代码:value
的{{1}}作为<input>
而不是String
返回。另外,如果要使用Number
,则必须将元素包装在jQuery集合中。请参见下面的工作示例:
trigger
$('.card-fields_input').each(function() {
if (this.value === '2') {
$(this).trigger('click');
}
})