如何查看是否选中了特定的复选框?

时间:2017-05-12 19:42:25

标签: javascript jquery

我看过很多帖子,但我找不到任何可行的方法。我需要在他们的个人资料中显示用户签名的预览,并且选项不显示他们的电话号码和/或电子邮件地址,因此每个都有一个复选框。

这是我的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(如电话复选框)。那里只有两种方法,但我已尝试过更多方法。他们都没有工作。没有附加任何内容。

我该怎么办?提前谢谢!

3 个答案:

答案 0 :(得分:2)

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

肯定这就是你所需要的一切。它返回一个布尔值

答案 1 :(得分:1)

$(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>

答案 2 :(得分:0)

在您的代码中,您使用的是赋值运算符&#34; =&#34;这意味着

a = b(b的值分配给a),

在您的情况下,您尝试将 true 分配给 $(&#39;#showPhoneId&#39;)。is(&#39;:checked&#39;)

麻烦&#34; ==&#34;代替

setTimeout(() => $('#selector').focus(), 100);

请参阅https://jsbin.com/rolodozode/1/edit?html,js,output