ページに多くのチェックボックスがあり、すべてのチェックボックスをチェックする[すべて選択]チェックボックスがあります。どういうわけか、すべて選択ボタンでチェックされている/チェックされていない場合でも、チェックボックスのクリックイベントをエミュレートしたいと思います。どうすればいいですか?
回答:
jQuery.trigger()
メソッドを使用できます。http://api.jquery.com/trigger/を参照してください
例えば:
$('#foo').trigger('click');
trigger('click')
、現在の値が切り替わります。あなただけ設定し、それを設定したい場合はchecked
trueに、その後(...)triggerHandlerを呼び出すstackoverflow.com/questions/10268222/...
gQueryなし
document.getElementById( 'your_box')。onclick();
チェックボックスで特定のクラスを使用しました。
var x = document.getElementsByClassName("box_class");
var i;
for (i = 0; i < x.length; i++) {
if(x[i].checked) x[i].checked = false;
else x[i].checked = true;
x[i].onclick();
}
これも使えますので、どうぞよろしくお願いします。
$(function(){
$('#elements input[type="checkbox"]').prop("checked", true).trigger("change");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div id="elements">
<input type="checkbox" id="item-1" value="1"> Item 1 <br />
<input type="checkbox" id="item-2" value="2" disabled> Item 2 <br />
<input type="checkbox" id="item-3" value="3" disabled> Item 3 <br />
<input type="checkbox" id="item-4" value="4" disabled> Item 4 <br />
<input type="checkbox" id="item-5" value="5"> Item 5
</div>
jQueryからのトリガー関数があなたの答えかもしれません。
jQueryのドキュメントによると: .on()またはそのショートカットメソッドの1つが付加されたイベントハンドラーは、対応するイベントが発生したときにトリガーされます。ただし、.trigger()メソッドを使用して手動で起動できます。.trigger()の呼び出しは、イベントがユーザーによって自然にトリガーされた場合と同じ順序でハンドラーを実行します。
したがって、最良の1行ソリューションは次のようになります。
$('.selector_class').trigger('click');
//or
$('#foo').click();
$("#gst_show>input").change(function(){
var checked = $(this).is(":checked");
if($("#gst_show>input:checkbox").attr("checked",checked)){
alert('Checked Successfully');
}
});
$('#foo').click()
。これは事実上同じことを行います。