javascript if 复选框的条件仅运行一次

标签 javascript html forms if-statement checkbox

我对 javascript 编程相当陌生,即使在解决了这里的问题之后,我似乎也无法正确理解这一点,基本上我有一个复选框,仅在未选中时才显示两个单选按钮

<span><strong>Not Available</strong></span>
<input  type="checkbox" placeHolder="" id="available" style="" name="available" required value="Yes"/>
<span style=" visibility: hidden; " id="BACSSpan">BACS</span><input type="radio" id="BACS" name="paymentSpecified" value="BACS" style="visibility: hidden;">
<span style="visibility: hidden;" id="ChequeSpan">Cheque</span> <input type="radio" id="Cheque" name="paymentSpecified"  value="Cheque" style=visibility: hidden;">

我使用了以下 JavaScript:

$('body').on('click', '#available', function ()
  {
    if ($('#available:checked'))
    {
      $('#BACSSpan').css('visibility','hidden');
      $('#BACS').css('visibility','hidden');
      $('#ChequeSpan').css('visibility','hidden');
      $('#Cheque').css('visibility','hidden');
    } else 
    {
      $('#BACSSpan').css('visibility','visible');
      $('#BACS').css('visibility','visible');
      $('#ChequeSpan').css('visibility','visible');
      $('#Cheque').css('visibility','visible');
    }
  }) 

它应该做的是交替显示两个单选按钮,但它没有做任何事情,但是当我颠倒条件的顺序时,即与我想要的相反;那么所需的功能仅发生一次

最佳答案

问题是 $('#available:checked') 是一个 jQuery 对象 - 而不是 bool 值。要获得 bool 值,您应该这样做:

if ($(this).is(':checked')) {
    ...
}
else {
    ...
}

关于javascript if 复选框的条件仅运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18333646/

相关文章:

javascript - 通过 AJAX 将多个 JSON 对象传递到 ASP.Net PageMethod

php - Ajax长轮询问题

asp.net - 顶部和底部自动定位?

ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT]

Javascript根据表单选择计算总数

javascript - 如何水平滚动网页?

javascript - 如何使用收发器 API 初始化 WebRTC 调用,但仅在信令完成后才启用音频和视频?

javascript - 如何为 jQuery 事件附加一些数据以进行冒泡?

jquery - Accordion 中的 Accordion ;如何使可排序只拖动数据而不是 Accordion 本身

javascript - 为什么在正确验证表单之前调用表单操作?