我需要在所述元件由不同的值仅定义一个字段,以检查特定的输入:
<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");
}
})
但没有运气。任何帮助吗?
谢谢。
你不能有多个元素重复使用相同的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>
我永远不会无论如何推荐这种方式。
编辑:使用@Praveen库马尔Purushothaman的答案。
首先,你不应该使用id
s不是每个文档一次。
至于你的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>