簡體   English   中英

如何查找是否選中了特定復選框?

[英]How can I find if a specific checkbox is checked?

我看了很多帖子,但找不到適合我的情況的任何內容。 我需要在其個人資料中顯示用戶簽名的預覽,並帶有不顯示其電話號碼和/或電子郵件地址的選項,因此我需要為每個復選框都提供一個復選框。

這是復選框的HTML:

<div class="checkbox">
    <label>
      <input type="checkbox" name="showInSignature[]" id="showPhoneId" value="showPhone" class="checkbox style-0" checked="checked">
      <span>Tel&eacute;fono</span>
    </label>
</div>

<div class="checkbox">
    <label>
      <input type="checkbox" name="showInSignature[]" id="showEmailId" value="showEmail" class="checkbox style-0" checked="checked">
      <span>Direcci&oacute;n de e-mail</span>
    </label>
</div>

這是jQuery:

var fname = $('#personalOptionsForm').find('[name="fname"]').val(),
    lname = $('#personalOptionsForm').find('[name="lname"]').val(),
    cellphone = $('#personalOptionsForm').find('[name="cellphone"]').val(),
    email = $('#personalOptionsForm').find('[name="email"]').val(),
    if ($('#showPhoneId').is(':checked') = true) {
        showPhone = 1;
    } else {
        showPhone = 0;
    },
    // showPhone = (($('input[name="showInSignature[]"]')['showPhone'].checked = true) ? 1 : 0),
    // showEmail = (($('input[name="showInSignature[]"]')['showEmail'].checked = true) ? 1 : 0),
    str = "<strong>" + fname + " " + lname + "</strong><br /><br />" + ((showPhone = 1) ? 'Tel&eacute;fono: ' + cellphone + '<br />' : '') + "E-mail: <a href=\"mailto:" + email + "\">" + email + "</a>",
    html = $.parseHTML( str );

$('#signaturePreview').append(html);

如果我注釋掉IF(就像我注釋掉的其他嘗試)和str var中的三元運算符,則它可以工作,但在嘗試使用動態值(如電話復選框)時顯示NOTHING。 那里只有兩種方法,但我嘗試了更多。 他們都不工作。 沒有附加任何內容。

我該怎么做? 提前致謝!

showPhone = $('#showPhoneId')。is(':checked');

當然,這就是您所需要的。 它返回一個布爾值

 $(document).ready(function() { alert('Is Checked: ' + $('#showPhoneId')[0].checked); console.log(typeof $('#showPhoneId')[0].checked); console.log($('#showPhoneId')[0].checked === true); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="checkbox"> <label> <input type="checkbox" name="showInSignature[]" id="showPhoneId" value="showPhone" class="checkbox style-0" checked="checked"> <span>Tel&eacute;fono</span> </label> </div> 

在您的代碼中,您正在使用賦值運算符“ =”,這意味着

a = b(將b的值分配給a),

在您的情況下,您嘗試將true分配給$('#showPhoneId')。is(':checked')

請“ ==”

 var fname = $('#personalOptionsForm').find('[name="fname"]').val() ,
    lname = $('#personalOptionsForm').find('[name="lname"]').val() ,
    cellphone = $('#personalOptionsForm').find('[name="cellphone"]').val(),
    email = $('#personalOptionsForm').find('[name="email"]').val(),

     //dummy values
     fname = 'abc', lname="dksjdn",
     cellphone = "98989898", email = "abc@gmail.com";
    if($('#showPhoneId').is(':checked') == true) {
        showPhone = 1;
    } else {
      showPhone = 0;
    };

    // showPhone = (($('input[name="showInSignature[]"]').is(':checked') == true) ? 1 : 0),
    // showEmail = (($('input[name="showInSignature[]"]').is(':checked') == true) ? 1 : 0),
    str = "<strong>" + fname + " " + lname + "</strong><br /><br />" + ((showPhone == 1) ? 'Tel&eacute;fono: ' + cellphone + '<br />' : '') + "E-mail: <a href=\"mailto:" + email + "\">" + email + "</a>",
    html = $.parseHTML( str );

$('#signaturePreview').append(html);

請參考https://jsbin.com/rolodozode/1/edit?html,js,輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM