私はjQuerycheckbox
を使用してチェックするためにこのようなことをしたいと思います:
$(".myCheckBox").checked(true);
または
$(".myCheckBox").selected(true);
そのようなものは存在しますか?
$("#mycheckbox").click();
私はjQuerycheckbox
を使用してチェックするためにこのようなことをしたいと思います:
$(".myCheckBox").checked(true);
または
$(".myCheckBox").selected(true);
そのようなものは存在しますか?
$("#mycheckbox").click();
回答:
使用.prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
要素を1つだけ使用している場合は、常に基になる要素にアクセスし、HTMLInputElement
その.checked
プロパティを変更することができます。
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
これの代わりに.prop()
および.attr()
メソッドを使用する利点は、一致するすべての要素で動作することです。
.prop()
あなたが使用する必要があるので、この方法では、使用できません.attr()
。
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
これは、バージョン1.6より前のjQueryの単体テストで使用されるアプローチであり$('.myCheckbox').removeAttr('checked');
、ボックスが最初にチェックさ.reset()
れていた場合、それを含むフォームでの呼び出しの動作を変更するため、後者が使用するよりも望ましいことに注意してください。歓迎されない行動の変化。
詳細については、checked
1.5.xから1.6への移行における属性/プロパティの処理の変更に関する不完全な説明が、バージョン1.6のリリースノートとドキュメントの属性とプロパティのセクションにあり.prop()
ます。
DOMElement.checked = true
」。それだけで一つの要素だから...しかし、それは、無視できるだろう
$(element).prop('checked')
はタイピングの完全な無駄です。 element.checked
存在し、あなたが既に持っている場合に使用されなければならないelement
使用する:
$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);
そして、チェックボックスがチェックされているかどうかをチェックしたい場合:
$('.myCheckbox').is(':checked');
これは、クロスプラットフォーム標準であり、フォームの再投稿を許可するため、jQueryでチェックボックスをオンまたはオフにする正しい方法です。
$('.myCheckBox').each(function(){ this.checked = true; });
$('.myCheckBox').each(function(){ this.checked = false; });
これを行うことにより、チェックボックスのチェックとチェック解除にJavaScript標準を使用しているため、checkbox要素の "checked"プロパティを適切に実装するブラウザーは、このコードを完全に実行します。これはすべての主要なブラウザーであるはずですが、Internet Explorer 9以前ではテストできません。
問題(jQuery 1.6):
ユーザーがチェックボックスをクリックすると、そのチェックボックスは「checked」属性の変更に応答しなくなります。
これは、誰かがチェックボックスをクリックした後、ジョブが失敗するチェックボックス属性の例です(これはChromeで発生します)。
ソリューション:
JavaScriptのの上でプロパティを「確認」を使用してDOM要素を、我々は代わりに私たちが何をやってにDOMを操作しようとしているの、直接の問題を解決することができますしたい、それが何を。
このプラグインは、jQueryによって選択されたすべての要素のcheckedプロパティを変更し、すべての状況でチェックボックスを正常にチェックおよびチェック解除します。したがって、これは根本的な解決策のように思えるかもしれませんが、サイトのユーザーエクスペリエンスを向上させ、ユーザーの不満を防ぐのに役立ちます。
(function( $ ) {
$.fn.checked = function(value) {
if(value === true || value === false) {
// Set the value of the checkbox
$(this).each(function(){ this.checked = value; });
}
else if(value === undefined || value === 'toggle') {
// Toggle the checkbox
$(this).each(function(){ this.checked = !this.checked; });
}
return this;
};
})( jQuery );
または、プラグインを使用したくない場合は、次のコードスニペットを使用できます。
// Check
$(':checkbox').prop('checked', true);
// Un-check
$(':checkbox').prop('checked', false);
// Toggle
$(':checkbox').prop('checked', function (i, value) {
return !value;
});
removeAttr('checked')
のではなくattr('checked', false)
checked
属性の変更方法に関係なく、ブラウザが属性の変更に応答しなくなることを示しました。
$('.myCheckBox').prop('checked', true)
このようにして、一致する要素のセット全体に自動的に適用されます(ただし、設定する場合に限り、取得はまだ最初の
prop
要素に属性を設定するには、間違いなく適切な方法です。
できるよ
$('.myCheckbox').attr('checked',true) //Standards compliant
または
$("form #mycheckbox").attr('checked', true)
起動するチェックボックスのonclickイベントにカスタムコードがある場合は、代わりに次のコードを使用します。
$("#mycheckbox").click();
属性を完全に削除することでチェックを外すことができます:
$('.myCheckbox').removeAttr('checked')
次のようにすべてのチェックボックスをオンにすることができます:
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});
$(".myCheckbox").click()
.attr
代わりにを使用しているため、この回答は古くなっています.prop
。
$("#mycheckbox").click();
私はあまりにも変更イベントを聞いていたとして、私のために働いたと.attr
&.prop
火災変更イベントませんでした。
新しいメソッドで$ .fnオブジェクトを拡張することもできます。
(function($) {
$.fn.extend({
check : function() {
return this.filter(":radio, :checkbox").attr("checked", true);
},
uncheck : function() {
return this.filter(":radio, :checkbox").removeAttr("checked");
}
});
}(jQuery));
その後、あなたはただ行うことができます:
$(":checkbox").check();
$(":checkbox").uncheck();
または、これらの名前を使用する他のライブラリを使用する場合に備えて、mycheck()やmyuncheck()などの一意の名前を付けたい場合があります。
.attr
代わりにを使用しているため、この回答は古くなっています.prop
。
$("#mycheckbox")[0].checked = true;
$("#mycheckbox").attr('checked', true);
$("#mycheckbox").click();
最後の1つはチェックボックスのクリックイベントを発生させ、他のイベントは発生させません。したがって、起動するチェックボックスのonclickイベントにカスタムコードがある場合は、最後のコードを使用します。
.attr
代わりにを使用しているため、この回答は古くなっています.prop
。
click
イベントはFirefoxとEdgeでは信頼できません。
チェックボックスをチェックするには、使用する必要があります
$('.myCheckbox').attr('checked',true);
または
$('.myCheckbox').attr('checked','checked');
チェックボックスをオフにするには、常にfalseに設定する必要があります。
$('.myCheckbox').attr('checked',false);
もしあなたがそうするなら
$('.myCheckbox').removeAttr('checked')
これにより属性がすべて削除されるため、フォームをリセットできません。
悪いデモjQuery 1.6。これは壊れていると思います。1.6については、新しい投稿を作成します。
新しい動作デモjQuery 1.5.2はChromeで動作します。
どちらのデモでも
$('#tc').click(function() {
if ( $('#myCheckbox').attr('checked')) {
$('#myCheckbox').attr('checked', false);
} else {
$('#myCheckbox').attr('checked', 'checked');
}
});
$(".mycheckbox").prop("checked", true/false)
質問が...
典型的なチェックボックスセットでは、すべての入力タグが同じ名前を持ち、属性によって異なりますvalue
。セットの各入力にIDはありません。
Xianの回答は、次のコード行を使用して、より具体的なセレクターで拡張できます。
$("input.myclass[name='myname'][value='the_value']").prop("checked", true);
解決策がありません。私は常に使用します:
if ($('#myCheckBox:checked').val() !== undefined)
{
//Checked
}
else
{
//Not checked
}
.val()
常に返さundefined
れる非自明の事実を利用して、jQueryオブジェクトが空であることを検出することができます.length
代わりに単にチェックしてください)- より読みやすいアプローチについては、stackoverflow.com / questions / 901712 /…を参照してください。
jQuery 1.6以降を使用してチェックボックスをチェックするには、次のようにします。
checkbox.prop('checked', true);
チェックを外すには、以下を使用します。
checkbox.prop('checked', false);
以下は、jQueryを使用してチェックボックスを切り替えるために使用するものです。
checkbox.prop('checked', !checkbox.prop('checked'));
jQuery 1.5以下を使用している場合:
checkbox.attr('checked', true);
チェックを外すには、以下を使用します。
checkbox.attr('checked', false);
ここにjQueryなしでそれを行う方法があります
function addOrAttachListener(el, type, listener, useCapture) {
if (el.addEventListener) {
el.addEventListener(type, listener, useCapture);
} else if (el.attachEvent) {
el.attachEvent("on" + type, listener);
}
};
addOrAttachListener(window, "load", function() {
var cbElem = document.getElementById("cb");
var rcbElem = document.getElementById("rcb");
addOrAttachListener(cbElem, "click", function() {
rcbElem.checked = cbElem.checked;
}, false);
}, false);
<label>Click Me!
<input id="cb" type="checkbox" />
</label>
<label>Reflection:
<input id="rcb" type="checkbox" />
</label>
以下は、ボタン付きのチェックありとチェックなしのコードです。
var set=1;
var unset=0;
jQuery( function() {
$( '.checkAll' ).live('click', function() {
$( '.cb-element' ).each(function () {
if(set==1){ $( '.cb-element' ).attr('checked', true) unset=0; }
if(set==0){ $( '.cb-element' ).attr('checked', false); unset=1; }
});
set=unset;
});
});
更新:attrを置き換える新しいJquery 1.6+ propメソッドを使用した同じコードブロックを次に示します。
var set=1;
var unset=0;
jQuery( function() {
$( '.checkAll' ).live('click', function() {
$( '.cb-element' ).each(function () {
if(set==1){ $( '.cb-element' ).prop('checked', true) unset=0; }
if(set==0){ $( '.cb-element' ).prop('checked', false); unset=1; }
});
set=unset;
});
});
.attr
代わりにを使用しているため、この回答は古くなっています.prop
。
elementObject
jQueryを使用して、属性をチェックできます。
$(objectElement).attr('checked');
エラーなしですべてのjQueryバージョンにこれを使用できます。
更新:Jquery 1.6+には、attrに代わる新しいpropメソッドがあります。例:
$(objectElement).prop('checked');
.attr
代わりにを使用しているため、この回答は古くなっています.prop
。
複数のチェックボックスをオンにする方法のコードとデモを次に示します...
http://jsfiddle.net/tamilmani/z8TTt/
$("#check").on("click", function () {
var chk = document.getElementById('check').checked;
var arr = document.getElementsByTagName("input");
if (chk) {
for (var i in arr) {
if (arr[i].name == 'check') arr[i].checked = true;
}
} else {
for (var i in arr) {
if (arr[i].name == 'check') arr[i].checked = false;
}
}
});
$("#check")
を生のDOM API呼び出しと混在させることはdocument.getElementsByTagName("input")
、特にfor
ここでのループを回避することを考えると、私には無味そう.prop()
です。とにかく、これは新しいことを何も加えないもう1つの遅い答えです。
別の可能な解決策:
var c = $("#checkboxid");
if (c.is(":checked")) {
$('#checkboxid').prop('checked', false);
} else {
$('#checkboxid').prop('checked', true);
}
@ livefree75が言ったように:
jQuery 1.5.x以下
新しいメソッドで$ .fnオブジェクトを拡張することもできます。
(function($) {
$.fn.extend({
check : function() {
return this.filter(":radio, :checkbox").attr("checked", true);
},
uncheck : function() {
return this.filter(":radio, :checkbox").removeAttr("checked");
}
});
}(jQuery));
しかし、jQueryの新しいバージョンでは、次のようなものを使用する必要があります。
jQuery 1.6以降
(function($) {
$.fn.extend({
check : function() {
return this.filter(":radio, :checkbox").prop("checked", true);
},
uncheck : function() {
return this.filter(":radio, :checkbox").prop("checked",false);
}
});
}(jQuery));
その後、あなたはただ行うことができます:
$(":checkbox").check();
$(":checkbox").uncheck();
jQueryドキュメントで次のように、Internet Explorer 9より前のInternet Explorerでのメモリリークに注意してください。
バージョン9より前のInternet Explorerでは、.prop()を使用してDOM要素のプロパティを単純なプリミティブ値(数値、文字列、またはブール値)以外に設定すると、プロパティが削除されないと(.removeProp(を使用して)メモリリークが発生する可能性があります。 ))DOM要素がドキュメントから削除される前。メモリリークなしで安全にDOMオブジェクトに値を設定するには、.data()を使用します。
.prop('checked',true)
です。
チェックおよびチェック解除するには
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
$('controlCheckBox').click(function(){
var temp = $(this).prop('checked');
$('controlledCheckBoxes').prop('checked', temp);
});
私はそれを使ってそれを機能させることができませんでした:
$("#cb").prop('checked', 'true');
$("#cb").prop('checked', 'false');
trueとfalseの両方がチェックボックスをオンにします。私のために働いたのは:
$("#cb").prop('checked', 'true'); // For checking
$("#cb").prop('checked', ''); // For unchecking
true
とfalse
していない'true'
と'false'
?
次のようなチェックボックスをオンにすると、
$('.className').attr('checked', 'checked')
それは十分ではないかもしれません。以下の関数も呼び出す必要があります。
$('.className').prop('checked', 'true')
特に、チェックボックスのチェック属性を削除した場合。
これが完全な答えです jQueryを使用し
私はそれをテストし、それは100%機能します:D
// when the button (select_unit_button) is clicked it returns all the checed checkboxes values
$("#select_unit_button").on("click", function(e){
var arr = [];
$(':checkbox:checked').each(function(i){
arr[i] = $(this).val(); // u can get id or anything else
});
//console.log(arr); // u can test it using this in google chrome
});
jQueryでは、
if($("#checkboxId").is(':checked')){
alert("Checked");
}
または
if($("#checkboxId").attr('checked')==true){
alert("Checked");
}
JavaScriptでは、
if (document.getElementById("checkboxID").checked){
alert("Checked");
}
.attr
代わりにを使用しているため、この回答は古くなっています.prop
。