代码之家  ›  专栏  ›  技术社区  ›  Rishi Jagati

如何从每个段落中仅选择一个复选框?

  •  1
  • Rishi Jagati  · 技术社区  · 8 年前

    enter image description here

    使用的HTML

     <div class="firstrow"><div class="srno"><p>1.</p></div><div class="survey"><span>I am satisfied with the quality, reliability and speed of the computer I use.</span></div></div>
        <div class="options">
            <span class="optpadding"><input type="checkbox" name="Strongly agree" value="Strongly agree"><span>Strongly agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Agree" value="Agree"><span>Agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Disagree" value="Disagree"><span>Disagree</span></span>
            <span class="optpadding"><input type="checkbox" name="Strongly disagree" value="Strongly disagree"><span>Strongly disagree</span></span>
        </div>
    <div class="firstrow"><div class="srno"><p>2.</p></div><div class="survey"><span>The Software currently installed on my computer is adequate for my job function.</span></div></div>
       <div class="options">
            <span class="optpadding"><input type="checkbox" name="Strongly agree" value="Strongly agree"><span>Strongly agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Agree" value="Agree"><span>Agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Disagree" value="Disagree"><span>Disagree</span></span>
            <span class="optpadding"><input type="checkbox" name="Strongly disagree" value="Strongly disagree"><span>Strongly disagree</span></span>
        </div>
    

    如何使用jquery实现这一点,我已经尝试了很多,但在只有一个调查问题的情况下取得了成功。当我选中另一个问题复选框时,这将删除以前选中的问题复选框。

    使用的Jquery

    $(function () {
       $('input:checkbox').click(function () {
          if ($(this).is(':checked')) {
              $('input:checkbox').not(this).prop('checked', false);
           }
       });
    })
    

    5 回复  |  直到 5 年前
        1
  •  2
  •   Death-is-the-real-truth    8 年前

    注:- 实际上,最好使用单选按钮,然后不需要jQuery。

    但如果您想使用复选框和jQuery,请执行以下操作:-

    $(function () {
       $('input:checkbox').click(function () {
          if ($(this).is(':checked')) {
              $(this).parent().siblings().children("input:checkbox").prop('checked', false);
           }
       });
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="firstrow"><div class="srno"><p>1.</p></div><div class="survey"><span>I am satisfied with the quality, reliability and speed of the computer I use.</span></div></div>
        <div class="options">
            <span class="optpadding"><input type="checkbox" name="Strongly agree" value="Strongly agree"><span>Strongly agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Agree" value="Agree"><span>Agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Disagree" value="Disagree"><span>Disagree</span></span>
            <span class="optpadding"><input type="checkbox" name="Strongly disagree" value="Strongly disagree"><span>Strongly disagree</span></span>
        </div>
    <div class="firstrow"><div class="srno"><p>2.</p></div><div class="survey"><span>The Software currently installed on my computer is adequate for my job function.</span></div></div>
       <div class="options">
            <span class="optpadding"><input type="checkbox" name="Strongly agree" value="Strongly agree"><span>Strongly agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Agree" value="Agree"><span>Agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Disagree" value="Disagree"><span>Disagree</span></span>
            <span class="optpadding"><input type="checkbox" name="Strongly disagree" value="Strongly disagree"><span>Strongly disagree</span></span>
        </div>
        2
  •  2
  •   Mayank Pandeyz    8 年前

    在多个选项中仅选择一个选项,而不是使用 checkbox 使用 radio 并为属于同一类别的所有收音机赋予相同的名称,以便一次只能检查一个收音机。

    <p>Topic 1
      <input type="radio" name="topic1">One
      <input type="radio" name="topic1">Two
    </p>
    
    <p>Topic 2
      <input type="radio" name="topic2">One
      <input type="radio" name="topic2">Two
    </p>
        3
  •  1
  •   Sergej    8 年前

    使用 <input type="radio" /> 而不是 <input type="checkbox" />

    .siblings() 而不是 .not(this)

        4
  •  1
  •   Chandra Kumar    8 年前

    尝试此代码 工作:

    演示: https://output.jsbin.com/ketunanizo

    https://jsbin.com/ketunanizo/edit?html,js,output

    HTML:

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    </head>
    <body>
    <div class="firstrow"><div class="srno"><p>1.</p></div><div class="survey"><span>I am satisfied with the quality, reliability and speed of the computer I use.</span></div></div>
        <div class="options">
            <span class="optpadding"><input type="checkbox" name="Strongly agree" value="Strongly agree"><span>Strongly agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Agree" value="Agree"><span>Agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Disagree" value="Disagree"><span>Disagree</span></span>
            <span class="optpadding"><input type="checkbox" name="Strongly disagree" value="Strongly disagree"><span>Strongly disagree</span></span>
        </div>
    <div class="firstrow"><div class="srno"><p>2.</p></div><div class="survey"><span>The Software currently installed on my computer is adequate for my job function.</span></div></div>
       <div class="options">
            <span class="optpadding"><input type="checkbox" name="Strongly agree" value="Strongly agree"><span>Strongly agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Agree" value="Agree"><span>Agree</span></span>
            <span class="optpadding"><input type="checkbox" name="Disagree" value="Disagree"><span>Disagree</span></span>
            <span class="optpadding"><input type="checkbox" name="Strongly disagree" value="Strongly disagree"><span>Strongly disagree</span></span>
        </div>
    </body>
    </html>
    

    <script>
    $(function () {
       $('input:checkbox').click(function () {
          if ($(this).is(':checked')) {
              $(this).closest('.options').find('input:checkbox').not(this).prop('checked', false);
           }
       });
    })
    </script>
    
        5
  •  0
  •   Manoprabu R    8 年前

    试试这个,它肯定会奏效。。。。

    $('input:checkbox').click(function () {
      if ($(this).is(':checked')) {
          $(this).parent().siblings().children().prop('checked', false);
       }
    });