checkbox
භාවිතා කරන jQuery එකක් තෝරා ගැනීමට මම මේ වගේ දෙයක් කිරීමට කැමතියි :
$(".myCheckBox").checked(true);
හෝ
$(".myCheckBox").selected(true);
එවැනි දෙයක් තිබේද?
$("#mycheckbox").click();
checkbox
භාවිතා කරන jQuery එකක් තෝරා ගැනීමට මම මේ වගේ දෙයක් කිරීමට කැමතියි :
$(".myCheckBox").checked(true);
හෝ
$(".myCheckBox").selected(true);
එවැනි දෙයක් තිබේද?
$("#mycheckbox").click();
Answers:
භාවිතා කරන්න .prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
ඔබ එක් මූලද්රව්යයක් සමඟ වැඩ කරන්නේ නම්, ඔබට සැමවිටම යටින් පවතින දේට ප්රවේශ විය හැකි අතර 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; });
මෙය කිරීමෙන්, ඔබ ජාවාස්ක්රිප්ට් ප්රමිති භාවිතා කරන්නේ පිරික්සුම් කොටු පරීක්ෂා කිරීම සහ ඉවත් කිරීම සඳහා වන අතර, එබැවින් පිරික්සුම් කොටුවේ මූලද්රව්යයේ “පරීක්ෂා කළ” දේපල නිසි ලෙස ක්රියාත්මක කරන ඕනෑම බ්රව්සරයක් මෙම කේතය දෝෂ රහිතව ක්රියාත්මක කරයි. මේ සියල්ල ප්රධාන බ්රව්සර් විය යුතුය, නමුත් මට ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 9 ට පෙර පරීක්ෂා කිරීමට නොහැකි විය.
ගැටලුව වන්නේ (jQuery 1.6):
පරිශීලකයෙකු පිරික්සුම් කොටුවක් මත ක්ලික් කළ පසු, එම පිරික්සුම් කොටුව “පරීක්ෂා කළ” ගුණාංග වෙනස්වීම් වලට ප්රතිචාර දැක්වීම නතර කරයි.
යමෙකු පිරික්සුම් කොටුව ක්ලික් කිරීමෙන් පසුව එම කාර්යය කිරීමට අපොහොසත් වීම සඳහා චෙක්බොක්ස් ගුණාංගයේ උදාහරණයක් මෙන්න (මෙය ක්රෝම් හි සිදු වේ).
විසඳුම:
DOM මූලද්රව්ය මත ජාවාස්ක්රිප්ට් හි "පරීක්ෂා කරන ලද" දේපල භාවිතා කිරීමෙන්, අපට අවශ්ය දේ කිරීමට DOM හසුරුවා ගැනීමට උත්සාහ කරනවා වෙනුවට ගැටලුව කෙලින්ම විසඳා ගත හැකිය .
මෙම ප්ලගිනය jQuery විසින් තෝරාගත් ඕනෑම මූලද්රව්යයක පරීක්ෂා කළ දේපල වෙනස් කරනු ඇති අතර, සියලු තත්වයන් යටතේ පිරික්සුම් කොටු සාර්ථකව පරීක්ෂා කර පරීක්ෂා කරන්න. එබැවින්, මෙය අධික ලෙස දරාගත හැකි විසඳුමක් සේ පෙනුනද, එය ඔබේ වෙබ් අඩවියේ පරිශීලක අත්දැකීම් වඩා හොඳ කරවන අතර පරිශීලක බලාපොරොත්තු සුන්වීම වළක්වා ගැනීමට උපකාරී වේ.
(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)
ඔබට වෙඩි තැබීමට අවශ්ය පිරික්සුම් කොටුව සඳහා ඔන්ක්ලික් සිද්ධියේ අභිරුචි කේතයක් තිබේ නම්, ඒ වෙනුවට මෙය භාවිතා කරන්න:
$("#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();
අන්තිම එක පිරික්සුම් කොටුව සඳහා ක්ලික් කිරීමේ සිදුවීම වෙඩි තබයි, අනෙක් ඒවා එසේ නොවේ. එබැවින් ඔබට වෙඩි තැබීමට අවශ්ය පිරික්සුම් කොටුව සඳහා ඔන්ක්ලික් සිද්ධියේ අභිරුචි කේතයක් තිබේ නම්, අන්තිම එක භාවිතා කරන්න.
.attr
වෙනුවට භාවිතා කරයි .prop
.
click
සිද්ධිය ෆයර්ෆොක්ස් සහ එජ් හි විශ්වාස කළ නොහැකි ය.
පිරික්සුම් කොටුවක් පරීක්ෂා කිරීමට ඔබ භාවිතා කළ යුතුය
$('.myCheckbox').attr('checked',true);
හෝ
$('.myCheckbox').attr('checked','checked');
චෙක් පෙට්ටියක් සලකුණු නොකිරීමට ඔබ එය සැමවිටම අසත්ය ලෙස සැකසිය යුතුය:
$('.myCheckbox').attr('checked',false);
ඔබ එසේ කරන්නේ නම්
$('.myCheckbox').removeAttr('checked')
එමඟින් ගුණාංගය සියල්ල ඉවත් කරයි, එබැවින් ඔබට පෝරමය නැවත සැකසීමට නොහැකි වනු ඇත.
BAD DEMO jQuery 1.6 . මම හිතන්නේ මේක කැඩිලා. 1.6 සඳහා මම ඒ පිළිබඳව නව ලිපියක් ඉදිරිපත් කිරීමට යන්නෙමි.
නව වැඩ කිරීමේ ඩෙමෝ jQuery 1.5.2 ක්රෝම් හි ක්රියා කරයි.
නිරූපණ දෙකම භාවිතා කරයි
$('#tc').click(function() {
if ( $('#myCheckbox').attr('checked')) {
$('#myCheckbox').attr('checked', false);
} else {
$('#myCheckbox').attr('checked', 'checked');
}
});
$(".mycheckbox").prop("checked", true/false)
ප්රශ්නය යැයි උපකල්පනය කරමින් ...
සාමාන්ය පිරික්සුම් කොටුවක, සියලු ආදාන ටැගයන්ට එකම නමක් ඇති බව මතක තබා ගන්න, ඒවා ගුණාංගයෙන් වෙනස් වේvalue
: කට්ටලයේ එක් එක් ආදානය සඳහා හැඳුනුම්පතක් නොමැත.
පහත දැක්වෙන කේත රේඛාව භාවිතා කරමින් වඩාත් නිශ්චිත තේරීම් කාරකයක් සමඟ ෂියාන්ගේ පිළිතුර දිගු කළ හැකිය :
$("input.myclass[name='myname'][value='the_value']").prop("checked", true);
මට විසඳුම මග හැරී ඇත. මම සැමවිටම භාවිතා කරමි:
if ($('#myCheckBox:checked').val() !== undefined)
{
//Checked
}
else
{
//Not checked
}
.val()
සෑම විටම නැවත පැමිණෙනු ඇත undefined
. .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;
});
});
යාවත්කාලීන කිරීම: අළුත් Jquery 1.6+ මුක්කු ක්රමය භාවිතා කරන එකම කේත වාරණය මෙන්න, එය attr වෙනුවට:
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
.
මේක උත්සාහ කරන්න:
$('#checkboxid').get(0).checked = true; //For checking
$('#checkboxid').get(0).checked = false; //For unchecking
elementObject
ගුණාංගය පරීක්ෂා කිරීම සඳහා අපට jQuery සමඟ භාවිතා කළ හැකිය :
$(objectElement).attr('checked');
කිසිදු දෝෂයකින් තොරව අපට මෙය සියලු jQuery අනුවාද සඳහා භාවිතා කළ හැකිය.
යාවත්කාලීන කිරීම: Jquery 1.6+ හි නව මුක්කු ක්රමය ඇත, එය attr වෙනුවට ආදේශ කරයි, උදා:
$(objectElement).prop('checked');
.attr
වෙනුවට භාවිතා කරයි .prop
.
ඔබ යෙදුම් සංවර්ධනය කරමින් PhoneGap භාවිතා කරන්නේ නම් සහ ඔබට ක්ෂණිකව පෙන්වීමට අවශ්ය බොත්තමෙහි වටිනාකමක් තිබේ නම්, මෙය කිරීමට මතක තබා ගන්න
$('span.ui-[controlname]',$('[id]')).text("the value");
පරතරය නොමැතිව, ඔබ කුමක් කළත් අතුරු මුහුණත යාවත්කාලීන නොවන බව මට පෙනී ගියේය.
බහුවිධ පිරික්සුම් කොටු පරීක්ෂා කරන්නේ කෙසේද යන්න පිළිබඳ කේතය සහ නිරූපණය මෙන්න ...
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 ඇමතුම් වැනි jQuery තේරීම් මිශ්ර document.getElementsByTagName("input")
කිරීම මට නුසුදුසු යැයි පෙනේ, විශේෂයෙන් for
මෙහි ඇති ලූප භාවිතා කිරීමෙන් වළක්වා ගත හැකිය .prop()
. කෙසේ වෙතත්, මෙය අලුත් දෙයක් එකතු නොකරන තවත් ප්රමාද පිළිතුරකි.
කළ හැකි තවත් විසඳුමක්:
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();
ජංගම දුරකථනය භාවිතා කරන්නේ නම් සහ අතුරු මුහුණත යාවත්කාලීන කර පිරික්සුම් කොටුව සලකුණු නොකළ ලෙස පෙන්වීමට ඔබට අවශ්ය නම්, පහත සඳහන් දෑ භාවිතා කරන්න:
$("#checkbox1").prop('checked', false).checkboxradio("refresh");
ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 9 ට පෙර ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් හි මතක කාන්දුවීම් පිළිබඳව සැලකිලිමත් වන්න , jQuery ප්රලේඛනයේ සඳහන් පරිදි :
9 වන අනුවාදයට පෙර ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් හි .prop () භාවිතා කිරීමෙන් සරල ප්රාථමික වටිනාකමක් (අංක, නූල් හෝ බූලියන්) හැර වෙනත් ඕනෑම දෙයකට DOM මූලද්රව්ය දේපලක් සැකසීමට දේපල ඉවත් නොකෙරේ නම් මතක කාන්දු විය හැක (.removeProp භාවිතා කරමින්) )) ලේඛනයෙන් DOM මූලද්රව්යය ඉවත් කිරීමට පෙර. මතක කාන්දු වීමකින් තොරව DOM වස්තු වල අගයන් ආරක්ෂිතව සැකසීමට, .data () භාවිතා කරන්න.
.prop('checked',true)
.
$('controlCheckBox').click(function(){
var temp = $(this).prop('checked');
$('controlledCheckBoxes').prop('checked', temp);
});
මෙය බොහෝ විට කෙටිම හා පහසුම විසඳුම වේ:
$(".myCheckBox")[0].checked = true;
හෝ
$(".myCheckBox")[0].checked = false;
ඊටත් වඩා කෙටි වනු ඇත්තේ:
$(".myCheckBox")[0].checked = !0;
$(".myCheckBox")[0].checked = !1;
මෙතන ඇති jsFiddle මෙන්ම.
සරල ජාවාස්ක්රිප්ට් ඉතා සරල හා ඉහළින් අඩු ය:
var elements = document.getElementsByClassName('myCheckBox');
for(var i = 0; i < elements.length; i++)
{
elements[i].checked = true;
}
මට එය භාවිතයෙන් වැඩ කිරීමට නොහැකි විය:
$("#cb").prop('checked', 'true');
$("#cb").prop('checked', 'false');
සත්ය සහ අසත්ය යන දෙකම පිරික්සුම් කොටුව පරීක්ෂා කරනු ඇත. මට වැඩ කළේ:
$("#cb").prop('checked', 'true'); // For checking
$("#cb").prop('checked', ''); // For unchecking
true
ද false
නොව 'true'
හා 'false'
?
'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");
}
ජාවාස්ක්රිප්ට් හි,
if (document.getElementById("checkboxID").checked){
alert("Checked");
}
.attr
වෙනුවට භාවිතා කරයි .prop
.