JQuery හි පිරික්සුම් කොටුවක් සලකුණු කර ඇත්දැයි පරීක්ෂා කරන්නේ කෙසේද?


4552

මට checkedපිරික්සුම් කොටුවක දේපල පරීක්ෂා කර jQuery භාවිතා කර පරීක්ෂා කළ දේපල මත පදනම්ව ක්‍රියාවක් කළ යුතුය.

උදාහරණයක් ලෙස, වයස් පිරික්සුම් කොටුව සලකුණු කර ඇත්නම්, මට වයස ඇතුල් කිරීමට පෙළ කොටුවක් පෙන්විය යුතුය, නැතිනම් පෙළ කොටුව සඟවන්න.

නමුත් පහත කේතය falseපෙරනිමියෙන් නැවත පැමිණේ :

if ($('#isAgeSelected').attr('checked'))
{
    $("#txtAge").show();
}
else
{
    $("#txtAge").hide();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="checkbox" id="isAgeSelected"/>

<div id="txtAge" style="display:none">
Age is selected
</div>

checkedදේපල සාර්ථකව විමසන්නේ කෙසේද?


14
collection ('# isAgeSelected') එකතුව නැවත ලබා දෙයි, එය ආදේශ කරන්න: $ ('# isAgeSelected') [0]. පරීක්ෂා කර ඇත
zamoldar

14
ඇයි නැත්තේ$('#isAgeSelected').checked
දොන් චෙඩ්ල්

1
සවිස්තරාත්මක (සහ නිවැරදි) පිළිතුරක් සඳහා බලන්න: stackoverflow.com/questions/426258/…
පෝල් කෙන්ජෝරා

12
JQuery තේරීම්කරුවන් නැවත අරාව ලබා දෙන බැවින්, ඔබට භාවිතා කළ හැකිය$('#isAgeSelected')[0].checked
Felipe Leão

2
මට පහත දැක්වෙන වෙනස් කිරීම් ක්‍රියාත්මක විය: .attr ('check') .is (': check') සමඟ ආදේශ කරන්න
මාර්ක් එන් හොප්ගුඩ්

Answers:


3434

පරීක්ෂා කළ දේපල සාර්ථකව විමසන්නේ කෙසේද?

මෙම checkedකොටුවකුත් DOM අංගයක් දේපල ඔබට දෙන්නෙමි checkedමූලද්රව්යයේ රාජ්ය.

ඔබගේ පවතින කේතය අනුව, ඔබට මෙය කළ හැකිය:

if(document.getElementById('isAgeSelected').checked) {
    $("#txtAge").show();
} else {
    $("#txtAge").hide();
}

කෙසේ වෙතත්, එහි භාවිතා, මෙය කිරීමට වඩා හුරුබුහුටි ක්රමයයි toggle:

$('#isAgeSelected').click(function() {
    $("#txtAge").toggle(this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="isAgeSelected"/>
<div id="txtAge" style="display:none">Age is something</div>


36
මම ඉහත කොන්දේසිය ද අත්හදා බැලුවෙමි, නමුත් එය අසත්‍යය පමණි
ප්‍රසාද්

24
$ ("# txtAge"). ටොගල් කරන්න (this.checked); හරියටම $ ("# txtAge") ට සමාන වේ. ටොගල කරන්න (). එබැවින්, කිසියම් හේතුවක් නිසා තත්වය පරීක්ෂා කර ඊළඟ කොටස සැඟවී තිබේ නම් (ඔබ ඔබගේ බ්‍රව්සරයේ පිටුපස බොත්තම ක්ලික් කළා) - එය අපේක්ෂිත පරිදි ක්‍රියා නොකරනු ඇත.
මැක්සිම් වී.

23
Hi චිරාමිසු - ඔබ පිළිතුර සියල්ලම කියවා ඇත්නම්, මගේ සංස්කරණය is(':checked')ව්‍යාපාරය භාවිතා නොකරන බව ඔබ දැක ඇති .
karim79

8
සැකසීමට: $ ("# chkmyElement") [0] .checked = true; ලබා ගැනීමට: if ($ ("# chkmyElement") [0]. පරීක්ෂා කර ඇත)
JJ_Coder4Hire

28
මෙය ප්‍රශ්නයට පිළිතුරක් නොවේ. this.checkedOP ඉල්ලා සිටි පරිදි jQuery නොවේ. එසේම, එය ක්‍රියාත්මක වන්නේ පරිශීලකයා ප්‍රශ්නයේ කොටසක් නොවන පිරික්සුම් කොටුව මත ක්ලික් කළ විට පමණි. ප්‍රශ්නය නම්, How to check whether a checkbox is checked in jQuery?ඕනෑම වේලාවක, පිරික්සුම් කොටුව ක්ලික් කිරීමෙන් හෝ නැතිව සහ jQuery තුළ ය.
මාක් කොම්පෙට්

1848

JQuery ගේ () ශ්‍රිතය භාවිතා කරන්න :

if($("#isAgeSelected").is(':checked'))
    $("#txtAge").show();  // checked
else
    $("#txtAge").hide();  // unchecked

19
ඔබට කාලසීමාව, ලිහිල් කිරීම යනාදිය අවශ්‍ය නොවේ නම්, ඔබට භාවිතා කළ හැකිය $("#txtAge").toggle($("#isAgeSelected").is(':checked'))
naor

13
+1 පරීක්ෂා කළ දේපල ලබා ගැනීමට විවිධ ක්‍රම තිබේ. සමහර ඒවා මෙහි ලැයිස්තුගත කර ඇත
user3199690

@NickG ඇත්තටම jQuery කරන්නේ තියෙනවා : දෘශ්යමාන තේරීම්
hvdd

2
knowhvdd මම දන්නවා - මම කිව්වේ "දේපල" මිස තේරීම් කාරයා නොවේ.
නික්

IckNickG ... ඔබ අදහස් කරන්නේ කුමක්දැයි මට තේරෙන්නේ නැත. HTML මූලද්‍රව්‍යයකට දෘශ්‍යමාන දේපලක් නොමැති නිසා jQuery හට .visible"දේපල" ( දේපල ? ඔබ අදහස් කරන්නේ ක්‍රමයද ?) නොමැත . ඔවුන් සතුව ශෛලීය දේපලක් ඇති අතර එය සක්‍රිය / අක්‍රිය කිරීමට වඩා ටිකක් සංකීර්ණයි. display
xDaizu

567

JQuery> 1.6 භාවිතා කිරීම

<input type="checkbox" value="1" name="checkMeOut" id="checkMeOut" checked="checked" />

// traditional attr
$('#checkMeOut').attr('checked'); // "checked"
// new property method
$('#checkMeOut').prop('checked'); // true

නව දේපල ක්‍රමය භාවිතා කිරීම:

if($('#checkMeOut').prop('checked')) {
    // something when checked
} else {
    // something else when not
}

27
මෙය පිළිතුර නොවන්නේ මන්දැයි දැන ගැනීමට මම කැමතියි ... ඔබ කිසිසේත් jquery භාවිතා කරන්නේ නම්, එම .propක්‍රමය මුක්කු පරීක්ෂා කිරීම සඳහා නිර්මාණය කර ඇති ක්‍රමයයි. .. ... ඔබ .is(":checked")ප්‍රවේශය කිරීමට යන්නේ නම් , එය හොඳයි, නමුත් එය jquery භාවිතයෙන් එය කිරීමට සැලසුම් කර ඇති ක්‍රමය නොවේ. හරිද?
dsdsdsdsd

1
@dsdsdsdsd අනුමාන වශයෙන් එයට තවත් පසුගාමී අනුකූලතා පියවරක් අවශ්‍ය නිසා (මම දැන් එම ගැටලුවටම මුහුණ දෙමි).
user98085

18
.is(":checked")හා .prop("checked")jQuery දී එම ප්රතිඵලයම ලබා ගැනීමට යන දෙකම වලංගු මාර්ග වේ, .isසියලුම අනුවාදවල වැඩ කටයුතු කරනු ඇත, .prop1.6+ අවශ්ය
gnarf

ඔබ .attr('checked')jQuery 1.11.3 හි භාවිතා කරන්නේ නම් , ඔබට නිර්වචනය නොකෙරේ, ඔබ භාවිතා කරන්නේ නම් .prop('checked')සත්‍ය / අසත්‍යය ලැබෙනු ඇත. පැරණි බ්රව්සර හඳුන්වා බව පසුව jQuery සංස්කරණ කටයුතු කළ නොහැකි විට ඔවුන් මේ ආකාරයට වැඩ කිරීමට එය වෙනස් ඇයි කියලා මම දකින්නේ නැහැ .prop()ඒ නිසා අවශ්යතාවය .attr(). එකම ඉතිරිකිරීමේ වරප්‍රසාදය නම් පැරණි බ්‍රව්සර් (එනම් IE 8) ට කිසිවක් සහය දැක්විය නොහැක> jQuery 1.9. ඔවුන් .attr('checked')එම අනුවාදයේ මෙය නොකළේ යැයි සිතමු (සාදන්න = නිර්වචනය නොකළ)! වාසනාවකට මෙන්, සෑම විටම පවතී this.checked.
vapcguy

230

jQuery 1.6+

$('#isAgeSelected').prop('checked')

jQuery 1.5 සහ ඊට පහළ

$('#isAgeSelected').attr('checked')

JQuery හි ඕනෑම අනුවාදයක්

// Assuming an event handler on a checkbox
if (this.checked)

සියලුම ණය ෂියාන්ට හිමිවේ .


8
තාක්ෂණික වශයෙන්, this.checkedසෘජු ජාවාස්ක්‍රිප්ට් භාවිතා කරයි. නමුත් මම ඒ හරස් jQuery අනුවාද පිළිතුරට කැමතියි!
vapcguy

170

මම මෙය භාවිතා කරන අතර මෙය ඉතා හොඳින් ක්‍රියාත්මක වේ:

$("#checkkBoxId").attr("checked") ? alert("Checked") : alert("Unchecked");

සටහන: පිරික්සුම් කොටුව සලකුණු කර ඇත්නම් එය වෙනත් ආකාරයකින් නිර්වචනය නොකෙරේ, එබැවින් "සත්‍ය" අගය සඳහා වඩා හොඳ පරීක්ෂා කරන්න.


6
මෙය ක්‍රියාත්මක වන්නේ $ ("# checkkBoxId"). Attr ("check") "check" හෝ "" (හිස් නූල) ආපසු ලබා දෙන බැවිනි. හිස් නූලක් ව්‍යාජ ය, හිස් නොවන නූල් සත්‍ය ය, සත්‍ය / ව්‍යාජ අගයන් ගැන බලන්න docs.nodejitsu.com/articles/javascript-conventions/…
ඇඩ්‍රියන් බී

7
Jquery 2.1.x මගින් එය පෙරනිමියෙන් පරික්‍ෂා කර ඇත්දැයි පරීක්ෂා කරයි ... මෙම හැසිරීම චේතනාන්විතදැයි මම නොදනිමි, නමුත් එය නිසැකවම ක්‍රියාත්මක නොවේ (මම හිතන්නේ එය දෝෂයකි) ... අගය () ක්‍රියා නොකරයි, එය "ක්‍රියාත්මක" වේ. මුක්කු () නිසියාකාරව ක්‍රියාත්මක වන අතර dom.checked ද ක්‍රියා කරයි.
inf3rno

1
ඔබට පැරණි බ්‍රව්සර් සමඟ සහාය වීමට සිදු වූ විට ගැටළුව පැමිණේ .attr()! ඔවුන් තනිවම පමණක් ඉතිරි වී ඇත්නම් .... මෙහි තවත් පිළිතුරක් හමු වූ විට ඔබට this.checkedහරස්-jQuery විසඳුමක් සඳහා භාවිතා කළ හැකිය , මන්ද එය මූලික වශයෙන් ජාවාස්ක්‍රිප්ට් ය.
vapcguy

.attr ('check') එය පෙරනිමියෙන් පරික්ෂා කර ඇත්දැයි පරීක්ෂා කරයි, ඔව්. මන්ද එය පරීක්ෂා කරන්නේ html ගුණාංගය මිස වත්මන් තත්වය නොවේ. පෙර අනුවාදය දෝෂයකි (බොහෝ දේ සූරාකෑමට ලක්වුවද, මම අනුමාන කරමි).
ජේ ඉර්වින්

149

භාවිත:

<input type="checkbox" name="planned_checked" checked id="planned_checked"> Planned

$("#planned_checked").change(function() {
    if($(this).prop('checked')) {
        alert("Checked Box Selected");
    } else {
        alert("Checked Box deselect");
    }
});

    $("#planned_checked").change(function() {
        if($(this).prop('checked')) {
            alert("Checked Box Selected");
        } else {
            alert("Checked Box deselect");
        }
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" name="planned_checked" checked id="planned_checked"> Planned


119

JQuery 1.6 සිට, හැසිරීම jQuery.attr()වෙනස් වී ඇති අතර මූලද්‍රව්‍යයක පරීක්ෂා කළ තත්වය ලබා ගැනීමට එය භාවිතා නොකරන ලෙස පරිශීලකයින් උනන්දු කරනු ලැබේ. ඒ වෙනුවට, ඔබ භාවිතා කළ යුත්තේ jQuery.prop():

$("#txtAge").toggle(
    $("#isAgeSelected").prop("checked") // For checked attribute it returns true/false;
                                        // Return value changes with checkbox state
);

තවත් හැකියාවන් දෙකක් නම්:

$("#txtAge").get(0).checked
$("#txtAge").is(":checked")

හා $ ( "# txtAge") [0] .checked
Yevgeniy Afanasyev

101

මෙය මට ප්‍රයෝජනවත් විය:

$get("isAgeSelected ").checked == true

isAgeSelectedපාලනයේ හැඳුනුම්පත කොහිද?

එසේම, @ karim79 හි පිළිතුර හොඳින් ක්‍රියාත්මක වේ. මම එය පරීක්‍ෂා කරන අවස්ථාවේ මග හැරුණු දේ මට විශ්වාස නැත.

සටහන, මෙය පිළිතුර භාවිතා කරන්නේ මයික්‍රොසොෆ්ට් අජැක්ස් මිස jQuery නොවේ


4
සෑම අවස්ථාවකම, සියලුම සාමාන්‍ය ක්‍රමලේඛන භාෂාවලින් ඔබට මඟ හැරිය හැක== true
RedPixel

EdRedPixel ඔබ අහෝසි කළ හැකි වර්ග සමඟ කටයුතු නොකරන්නේ නම්. :) (pedantic smy)
කොලොබ් කැනියොන්

88

ඔබ jquery හි යාවත්කාලීන කළ අනුවාදයක් භාවිතා කරන්නේ නම්, .propඔබේ ගැටළුව විසඳීම සඳහා ඔබ ක්‍රමවේදයක් අනුගමනය කළ යුතුය :

$('#isAgeSelected').prop('checked')trueපරීක්ෂා කර falseඇත්නම් සහ පරීක්ෂා නොකළහොත් නැවත පැමිණේ . මම එය සනාථ කළ අතර මට මීට පෙර මෙම ගැටලුව හමු විය. $('#isAgeSelected').attr('checked')සහ $('#isAgeSelected').is('checked')නැවත පැමිණීම undefinedතත්වයට සුදුසු පිළිතුරක් නොවේ. එබැවින් පහත දැක්වෙන පරිදි කරන්න.

if($('#isAgeSelected').prop('checked')) {
    $("#txtAge").show();
} else {
    $("#txtAge").hide();
}

එය උපකාරී වේ යැයි සිතමු :) - ස්තූතියි.


ඇයි නැත්තේ $('#isAgeSelected').checked?
දොන් චෙඩ්ල්

1
භාවිතා කිරීමට .ඔබට මහා බඩවැලක් අවශ්‍ය නම් $ ('# isAgeSelected'). (': පරීක්ෂා කර ඇත')
පැට්‍රික්

62

Clickසිදුවීම් හසුරුවන්නා checkedක්‍රියාත්මක කිරීමේදී දේපල වෙනස් විය හැකි බැවින්, පිරික්සුම් කොටුවේ දේපල සඳහා සිදුවීම් හසුරුව භාවිතා කිරීම විශ්වාස කළ නොහැකි ය!

ඉතා මැනවින්, ඔබට අවශ්‍ය වන්නේ ඔබේ කේතය changeචෙක් පෙට්ටියේ වටිනාකම වෙනස් වන සෑම අවස්ථාවකම ( එය සිදු කරන ආකාරය ස්වාධීනව) වෙඩි තැබීම වැනි සිදුවීම් හසුරුවන්නෙකු තුළට දැමීමයි .

$('#isAgeSelected').bind('change', function () {

   if ($(this).is(':checked'))
     $("#txtAge").show();
   else
     $("#txtAge").hide();
});

3
JQuery 1.7 වන විට, .on()සිද්ධිය හසුරුවන්නන් ලේඛනයකට ඇමිණීම සඳහා වඩාත් සුදුසු ක්‍රමය වේ.
naor

61

භාවිත:

<input type="checkbox" id="abc" value="UDB">UDB
<input type="checkbox" id="abc" value="Prasad">Prasad
$('input#abc').click(function(){
  if($(this).is(':checked'))
  {
    var checkedOne=$(this).val()
    alert(checkedOne);

    // Do some other action
  }
})

අවශ්‍ය ක්‍රියාමාර්ගය කළ යුත්තේ ඔබ චෙක්පත ඉවත් කරන අවස්ථාවේ නොව කොටුව සලකුණු කළ විට පමණක් බව ඔබට අවශ්‍ය නම් මෙය උපකාරී වේ.


53

JQuery නොමැතිව එම දේම කරන්නේ කෙසේද යන්න පිළිබඳ පිළිතුරක් පළ කිරීමට මම තීරණය කළෙමි. මම කැරලිකරුවෙක් නිසා.

var ageCheckbox = document.getElementById('isAgeSelected');
var ageInput = document.getElementById('txtAge');

// Just because of IE <333
ageCheckbox.onchange = function() {
    // Check if the checkbox is checked, and show/hide the text field.
    ageInput.hidden = this.checked ? false : true;
};

පළමුව ඔබ මූලද්‍රව්‍ය දෙකම ඔවුන්ගේ හැඳුනුම්පතෙන් ලබා ගනී. ඉන්පසු ඔබ පිරික්සුම් කොටුවේ onchangeසිදුවීම පිරික්සුම් කොටුව සලකුණු කර ඇත්දැයි පරීක්ෂා hiddenකර වයස් පෙළ ක්ෂේත්‍රයේ දේපල නිසි පරිදි සකසයි . එම උදාහරණයේ දී ත්‍රික ක්‍රියාකරු භාවිතා කිරීම.

මෙන්න ඔබට එය පරීක්ෂා කිරීම සඳහා ප්‍රහේලිකාවකි .

අතිරේක

හරස් බ්රවුසරයේ ගැළපුම ගැටළුවක් නම්, CSS displayදේපල කිසිවකට සහ පේළියට සැකසීමට මම යෝජනා කරමි .

elem.style.display = this.checked ? 'inline' : 'none';

මන්දගාමී නමුත් හරස් බ්‍රව්සරයට අනුකූල වේ.


හොඳයි, .hiddenමම මෙම විසඳුමට කැමති වුවත්, හරස් බ්‍රව්සරයක් නොවේ :)
ෆ්ලෝරියන් මාගයින්

එය ඇත්ත වශයෙන්ම භාවිතා කිරීමට හොඳම ක්‍රමයයි style. එය අවාසනාවන්ත වුවත්, .hiddenකාර්ය සාධනය වඩා හොඳ බැවින් .
ෆ්ලෝරියන් මාගයින්

කොන්දේසි සහිත ක්‍රියාකරුවෙකු තුළ පැවරුම? නෛතික, ඔව්. කෙසේ වෙතත්, මම හොඳ ශෛලියක් ලෙස හඳුන්වන දේ නොවේ.
ජූල්ස්

සරල කළ හැකිය: ageInput.hidden =! this.checked; (මිනිසුන් අනවශ්‍ය ලෙස බූලියන් වචන භාවිතා කරන විට මම වෛර කරමි ... ඔබ එකම සත්‍ය ප්‍රකාශයේ “සත්‍ය” සහ “අසත්‍ය” යන දෙකම භාවිතා කරන්නේ නම්, එය භාවිතා කිරීම අනවශ්‍යය)
ජොයෙල්ෆාන්

52

ඔබට මෙය කළ හැකි යැයි මම විශ්වාස කරමි:

if ($('#isAgeSelected :checked').size() > 0)
{
    $("#txtAge").show(); 
} else { 
    $("#txtAge").hide();
}

ඇඟවීම් ($ ('ආදානය [name = isAgeSelected]'). attr ('පරීක්ෂා කර ඇත')); ඉහත කේතය චෙක්පත මත පදනම්ව සත්‍ය / අසත්‍යය පෙන්වයි. පෙර උත්සාහයන් සමඟ ඇති ඕනෑම ගැටළුවක්
ප්‍රසාද්

ප්‍රසාද්, ඔබ ඔබේ පිරික්සුම් කොටුව නමෙන් හෝ හැඳුනුම්පතෙන් යොමු කරනවාද? මම දැන් ව්‍යාකූල වී සිටිමි ...
karim79

ඔබට එයට හැඳුනුම්පතක් ලබා දිය නොහැකිද? දේවල් බොහෝ පහසු වනු ඇත, ඔබේ උදාහරණයේ දී ඔබ එය එහි හැඳුනුම්පතෙන් ඇමතීය
සෙනෝන්

.Size () ක්‍රමය jQuery 1.8 අනුව ඉවත් කර ඇත. ඒ වෙනුවට .length (((;;)) දේපල භාවිතා නොකරන්න! සමහර විට ඔබ එකට බැඳී සිටිය යුතුය "#isAgeSelected: check".
ප්‍රංශුවා බ්‍රිටන්

47

මම හරියටම එකම ප්‍රශ්නයට යොමු වුණෙමි. මට ASP.NET පිරික්සුම් කොටුවක් ඇත

<asp:CheckBox ID="chkBox1" CssClass='cssChkBox1' runat="server" />

JQuery කේතයේ මම පහත සඳහන් තේරීම් කාරකය භාවිතා කර පිරික්සුම් කොටුව සලකුණු කර ඇත්දැයි පරීක්ෂා කර බැලුවෙමි.

if ($("'.cssChkBox1 input[type=checkbox]'").is(':checked'))
{ ... } else { ... }

මට විශ්වාසයි ඔබට CssClass වෙනුවට හැඳුනුම්පත භාවිතා කළ හැකිය,

if ($("'#cssChkBox1 input[type=checkbox]'").is(':checked'))
{ ... } else { ... }

මෙය ඔබට උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි.


46

පිරික්සුම් කොටුවක් සලකුණු කර තිබේද නැද්ද යන්න පරීක්ෂා කිරීමට බොහෝ ක්‍රම තිබේ:

JQuery භාවිතා කර පරීක්ෂා කිරීමට මාර්ගය

if (elem.checked)
if ($(elem).prop("checked"))
if ($(elem).is(":checked"))
if ($(elem).attr('checked'))

උදාහරණය පරීක්ෂා කරන්න හෝ ලේඛනය:


46

මෙම කේතය ඔබට උපකාරී වනු ඇත

$('#isAgeSelected').click(function(){
   console.log(this.checked);
   if(this.checked == true) {
        $("#txtAge").show();
    } else {
       $("#txtAge").hide();
   }
});

42

මෙය මට වැඩ කරයි:

/* isAgeSelected being id for checkbox */

$("#isAgeSelected").click(function(){
  $(this).is(':checked') ? $("#txtAge").show() : $("#txtAge").hide();
});

41

එකම දේ කිරීමට මෙය වෙනස් ක්‍රමයකි:

$(document).ready(function (){

    $('#isAgeSelected').click(function() {
        // $("#txtAge").toggle(this.checked);

        // Using a pure CSS selector
        if ($(this.checked)) {
            alert('on check 1');
        };

        // Using jQuery's is() method
        if ($(this).is(':checked')) {
            alert('on checked 2');
        };

        //  // Using jQuery's filter() method
        if ($(this).filter(':checked')) {
            alert('on checked 3');
        };
    });
});
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<input type="checkbox" id="isAgeSelected"/>
<div id="txtAge" style="display:none">Age is something</div>


35

මෙය භාවිතා කරන්න:

if ($('input[name="salary_in.Basic"]:checked').length > 0)

පිරික්සුම් කොටුව සලකුණු කරන්නේ නම් දිග බිංදුවට වඩා වැඩිය.


33

මෙය සිදු කරන ආකාරය:

if ( $("#checkbox:checked").length ) {       
    alert("checkbox is checked");
} else {
    alert("checkbox is not checked");
}

31
$(selector).attr('checked') !== undefined

trueආදානය පරික්ෂා කර falseඇත්නම් සහ එසේ නොවේ නම් මෙය නැවත පැමිණේ .


4
මෙය යම් යම් තත්වයන් තුළ ක්‍රියාත්මක වන්නේ මන්දැයි මට වැටහී ඇත, නමුත් එය .attr('checked')සෑම විටම නිවැරදි තත්වය ලබා නොදෙන කාරණයට සමාන ගැටළුවක් ඇත . අනුව සල්මන් ඒ ගේ පිළිතුර (හා සමහර විට අන් අය '), එය භාවිතා කිරීමට ආරක්ෂිත විකල්පය වේ .prop('checked')වෙනුවට. ඊට අමතරව, එසේ ප්‍රකාශ කළ undefinedහැකිය var undefined = 'checked';.
WynandB

.prop('checked')දැන් වඩා හොඳ පිළිතුරක් පෙනේ. එය ලියන අවස්ථාවේ එය විශ්වාසදායක නොවීය. නිර්වචනය නොකළ නැවත ප්‍රකාශ කිරීම හොඳ අදහසක් යැයි මට නොතේරේ.
fe_lix_

පැති සටහනක් ලෙස, නිර්වචනය නොකළ දේ පරීක්ෂා කිරීම වඩා හොඳයtypeof (x) !== "undefined"
naor

එවැනි අවස්ථාවකදී, එය කියවීම වඩාත් නිවැරදි හා පහසු යැයි මම විශ්වාස කරමි! ==. මම ටයිප් ඔෆ් (x) භාවිතා කරන්නේ අතීතයේ අර්ථ දක්වා ඇති හෝ නොවිය හැකි විචල්‍යයක් පරීක්ෂා කිරීමේදී පමණි.
fe_lix_

30
$(document).ready(function() {    
    $('#agecheckbox').click(function() {
        if($(this).is(":checked"))
        {
            $('#agetextbox').show();
        } else {
            $('#agetextbox').hide();
        }
    });
});

30

ඔයාට පාවිච්චි කරන්න පුළුවන්:

  if(document.getElementById('isAgeSelected').checked)
    $("#txtAge").show();  
  else
    $("#txtAge").hide();

if($("#isAgeSelected").is(':checked'))
  $("#txtAge").show();  
else
  $("#txtAge").hide();

දෙදෙනාම වැඩ කළ යුතුය.


27

1) ඔබේ HTML සලකුණු කිරීම නම්:

<input type="checkbox"  />

භාවිතා කරන attr:

$(element).attr("checked"); // Will give you undefined as initial value of checkbox is not set

මුක්කු භාවිතා කරන්නේ නම්:

$(element).prop("checked"); // Will give you false whether or not initial value is set

2) ඔබේ HTML සලකුණු කිරීම නම්:

 <input type="checkbox"  checked="checked" />// May be like this also  checked="true"

භාවිතා කරන attr:

$(element).attr("checked") // Will return checked whether it is checked="true"

මුක්කු භාවිතා:

$(element).prop("checked") // Will return true whether checked="checked"

මෙය සැබෑ ගැටළුවක්. මගේ ක්‍රියාකාරීත්වය - ආදානයට වෙනස් කිරීමේ සිදුවීමක් එක් කරන්න: <input type = "checkbox" onchange = "ChangeChkBox ()" /> ඉන්පසු එම සිදුවීම බූලියන් ජාවාස්ක්‍රිප්ට් විචල්‍යයක් වෙනස් කිරීමට භාවිතා කරන්න, සහ කෙලින්ම පිරික්සුම් කොටුව විමසීම වෙනුවට ජාවාස්ක්‍රිප්ට් විචල්‍යය භාවිතා කරන්න.
ග්‍රැහැම් ලයිට්

24

මෙම උදාහරණය බොත්තම සඳහා ය.

පහත සඳහන් දෑ උත්සාහ කරන්න:

<input type="button" class="check" id="checkall" value="Check All" />  &nbsp; <input type="button" id="remove" value="Delete" /> <br/>

<input type="checkbox" class="cb-element"  value="1" /> Checkbox  1 <br/>
<input type="checkbox" class="cb-element"  value="2" /> Checkbox  2 <br/>
<input type="checkbox" class="cb-element"  value="3" /> Checkbox  3 <br/>


$('#remove').attr('disabled', 'disabled'); 

$(document).ready(function() {  

    $('.cb-element').click(function() {

        if($(this).prop('checked'))
        {
            $('#remove').attr('disabled', false);
        }
        else
        {
            $('#remove').attr('disabled', true);
        }
    });   

    $('.check:button').click(function()
{
    var checked = !$(this).data('checked');
    $('input:checkbox').prop('checked', checked);
    $(this).data('checked', checked);

    if(checked == true)
    {
        $(this).val('Uncheck All');
         $('#remove').attr('disabled', false);
    }

    else if(checked == false)
    {
        $(this).val('Check All');
        $('#remove').attr('disabled', true);
    }
});
});

24

ඉහළම පිළිතුර මා වෙනුවෙන් එය කළේ නැත. නමුත් මෙය සිදු වූයේ:

<script type="text/javascript">
    $(document).ready(function(){

        $("#li_13").click(function(){
            if($("#agree").attr('checked')){
                $("#saveForm").fadeIn();
            }
            else
            {
                $("#saveForm").fadeOut();
            }
        });
    });
</script>

මූලික වශයෙන් # li_13 මූලද්‍රව්‍යය ක්ලික් කළ විට, .attr('checked')ශ්‍රිතය භාවිතා කරමින් # එකඟ වන මූලද්‍රව්‍යය (එය පිරික්සුම් කොටුව වේ) පරීක්ෂා කරයි. එය එසේ නම්, #SaveForm මූලද්‍රව්‍යය තුළ fadeIn කරන්න, නැතිනම් fadeOut නම් saveForm මූලද්‍රව්‍යය.


22

මම මෙය භාවිතා කරමි:

 <input type="checkbox" id="isAgeSelected" value="1" /> <br/>
 <input type="textbox" id="txtAge" />

 $("#isAgeSelected").is(':checked') ? $("#txtAge").show() : $("#txtAge").hide();

22

ඔබ (අ ප්රදර්ශනය ඔබේ ප්රශ්නය සඳහා ජාවාස්ක්රිප්ට් විසඳුමක් යෝජනා ඇතත් textboxකරන විට checkboxchecked), මෙම ගැටලුව විසඳා ගත හැකි හුදෙක් CSS විසින් . මෙම ප්‍රවේශය සමඟ, ඔබගේ පෝරමය ජාවාස්ක්‍රිප්ට් අක්‍රීය කළ පරිශීලකයින් සඳහා ක්‍රියා කරයි.

ඔබට පහත HTML ඇති බව උපකල්පනය කිරීම:

<label for="show_textbox">Show Textbox</label>
<input id="show_textbox" type="checkbox" />
<input type="text" />

අපේක්ෂිත ක්‍රියාකාරිත්වය සාක්ෂාත් කර ගැනීම සඳහා ඔබට පහත සඳහන් CSS භාවිතා කළ හැකිය:

 #show_textbox:not(:checked) + input[type=text] {display:none;}

වෙනත් අවස්ථා සඳහා, සුදුසු CSS තේරීම්කරුවන් ගැන ඔබට සිතිය හැකිය.

මෙම ප්රවේශය නිරූපණය කිරීම සඳහා ෆිද්ල් මෙන්න .


21

ටොගල් කරන්න: 0/1 හෝ වෙනත්

<input type="checkbox" id="nolunch" />
<input id="checklunch />"

    $('#nolunch').change(function () {
    if ($(this).is(':checked')) {
        $('#checklunch').val('1');
    };
    if ($(this).is(':checked') == false) {
        $('#checklunch').val('0');
    };
});

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.