جاوااسکریپت - گرفتن مقدار جعبه تیک خورده؟


پس من کدی دارم که شبیه این است:

<input class="messageCheckbox" type="checkbox" value="3" name="mailId[]">
<input class="messageCheckbox" type="checkbox" value="1" name="mailId[]">

من فقط به جاوااسکریپت نیاز دارم تا مقدار هر چکباکسی که در حال حاضر انتخاب شده است را دریافت کند.

ویرایش: برای افزودن، تنها یک کادر علامتدار خواهد بود.

پاسخ شماره ۱

هیچکدام از موارد بالا برای من کار نکرد، اما به سادگی از این استفاده کنید:

document.querySelector('.messageCheckbox').checked;

پاسخ شماره ۲

برای مرورگرهای مدرن:

var checkedValue = document.querySelector('.messageCheckbox:checked').value;

با استفاده از jQuery:

var checkedValue = $('.messageCheckbox:checked').val();

جاوااسکریپت خالص بدون jQuery:

var checkedValue = null; 
var inputElements = document.getElementsByClassName('messageCheckbox');
for(var i=0; inputElements[i]; ++i){
      if(inputElements[i].checked){
           checkedValue = inputElements[i].value;
           break;
      }
}

پاسخ شماره ۳

من از این در کد خود استفاده میکنم. این را امتحان کن

var x=$("#checkbox").is(":checked");

اگر کادر انتخاب علامتدار باشد، x درست خواهد بود و در غیر این صورت نادرست خواهد بود.

پاسخ شماره ۴

در جاوااسکریپت ساده:

function test() {
    var cboxes = document.getElementsByName('mailId[]');
    var len = cboxes.length;
    for (var i=0; i<len; i++) {
        alert(i + (cboxes[i].checked?' checked ':' unchecked ') + cboxes[i].value);
    }
}
function selectOnlyOne(current_clicked) {
    var cboxes = document.getElementsByName('mailId[]');
    var len = cboxes.length;
    for (var i=0; i<len; i++) {
        cboxes[i].checked = (cboxes[i] == current);
    }
}

پاسخ شماره ۵

این مستقیماً به سؤال پاسخ نمیدهد، اما ممکن است به بازدیدکنندگان آینده کمک کند.

اگر میخواهید یک متغیر همیشه وضعیت فعلی چکباکس را نشان دهد (به جای اینکه مجبور باشید مرتب وضعیت آن را بررسی کنید)، میتوانید رویداد onchange را برای تنظیم آن متغیر اصلاح کنید.

این میتواند در HTML انجام شود:

<input class='messageCheckbox' type='checkbox' onchange='some_var=this.checked;'>

یا با جاوااسکریپت:

cb = document.getElementsByClassName('messageCheckbox')[0]
cb.addEventListener('change', function(){some_var = this.checked})