Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:如何检测是否选中了HTML复选框?_Javascript_Jquery_Html - Fatal编程技术网

JavaScript:如何检测是否选中了HTML复选框?

JavaScript:如何检测是否选中了HTML复选框?,javascript,jquery,html,Javascript,Jquery,Html,我如何: 是否检测是否已单击/选中HTML复选框 检索已选中的复选框 示例代码: <FORM ACTION="..."> <INPUT TYPE=CHECKBOX VALUE="1">1 bedroom<BR> <INPUT TYPE=CHECKBOX VALUE="2">2 bedrooms<BR> <INPUT TYPE=CHECKBOX VALUE="3">3 bedrooms<BR> <INPUT

我如何:

  • 是否检测是否已单击/选中HTML复选框
  • 检索已选中的复选框
  • 示例代码:

    <FORM ACTION="...">
    <INPUT TYPE=CHECKBOX VALUE="1">1 bedroom<BR>
    <INPUT TYPE=CHECKBOX VALUE="2">2 bedrooms<BR>
    <INPUT TYPE=CHECKBOX VALUE="3">3 bedrooms<BR>
    <INPUT TYPE=CHECKBOX VALUE="4+">4+ bedrooms<P>
    </FORM>
    
    
    一居室
    两间卧室
    3间卧室
    4间以上卧室

    意思是

  • 如果web用户选择“1个卧室”,我希望触发一个事件来通知我用户选择了“1个卧室”
  • 如您所见,用户可以选择多个复选框。例如,他们可能希望看到有“一居室”或“两居室”的住宅。所以他们会选中这两个复选框。当选中多个复选框时,如何检索复选框值

  • 如果有帮助,我愿意使用JQuery来简化这一过程。

    为复选框元素指定名称和/或ID,以便在代码中区分它们。然后,如果要处理选中/取消选中状态更改,请使用jQuery添加带有
    bind
    的事件。

    为复选框元素分配名称和/或ID,以便在代码中区分它们。然后,如果要处理选中/取消选中状态更改,请使用jQuery添加带有
    bind
    的事件。

    在复选框上使用ID

    <FORM ACTION="...">
    <INPUT TYPE=CHECKBOX id="c1" VALUE="1">1 bedroom<BR>
    <INPUT TYPE=CHECKBOX id="c2" VALUE="2">2 bedrooms<BR>
    <INPUT TYPE=CHECKBOX id="c3" VALUE="3">3 bedrooms<BR>
    <INPUT TYPE=CHECKBOX id="c4" VALUE="4+">4+ bedrooms<P>
    </FORM>
    
    
    
    $('c1').checked // returns whether the 1 bedroom checkbox is true or false
    
    
    一居室
    两间卧室
    3间卧室
    4间以上卧室

    $('c1')。选中//返回1卧室复选框是否为真


    在复选框上使用ID

    <FORM ACTION="...">
    <INPUT TYPE=CHECKBOX id="c1" VALUE="1">1 bedroom<BR>
    <INPUT TYPE=CHECKBOX id="c2" VALUE="2">2 bedrooms<BR>
    <INPUT TYPE=CHECKBOX id="c3" VALUE="3">3 bedrooms<BR>
    <INPUT TYPE=CHECKBOX id="c4" VALUE="4+">4+ bedrooms<P>
    </FORM>
    
    
    
    $('c1').checked // returns whether the 1 bedroom checkbox is true or false
    
    
    一居室
    两间卧室
    3间卧室
    4间以上卧室

    $('c1')。选中//返回1卧室复选框是否为真

    1)使用onclick属性。
    2) 您可以给它们取一个相同的名字,然后使用
    $('input[name=yourname]:checked')
    来获取它们

    [编辑]根据要求,这里有一个

    
    $(文件).ready(初始化);
    函数init(){
    //将onclick功能添加到每个名为“卧室”的复选框中。
    $('input[name=Beddrooms]')。单击(showCheckedValues);
    }
    函数showCheckedValues(){
    //收集名为“卧室”的复选框的所有值。
    var checked=$('input[name=beddrooms]:checked').map(function(){
    返回此.value;
    }).get();
    警报(已选中);
    }
    一居室
    两居室
    三居室
    4+间卧室
    1)使用onclick属性。
    2) 您可以给它们取一个相同的名字,然后使用
    $('input[name=yourname]:checked')
    来获取它们

    [编辑]根据要求,这里有一个

    
    $(文件).ready(初始化);
    函数init(){
    //将onclick功能添加到每个名为“卧室”的复选框中。
    $('input[name=Beddrooms]')。单击(showCheckedValues);
    }
    函数showCheckedValues(){
    //收集名为“卧室”的复选框的所有值。
    var checked=$('input[name=beddrooms]:checked').map(function(){
    返回此.value;
    }).get();
    警报(已选中);
    }
    一居室
    两居室
    三居室
    4+间卧室

    您可以使用复选框的.checked属性来检索复选框是否已选中。要在选中复选框时触发事件,可以在jquery中使用click事件。下面类似的内容可以列出页面上所有已选中的复选框

    $("input[type='checkbox']").click(function() {
        // if you want information about the specific checkbox that was clicked        
        alert("checkbox name : " + $(this).name + " | checked : " + $(this).checked);
    
        // if you want to do something with ALL the checkboxes on click. 
        $.each($["input[type='checkbox']", function(i, checkEl) {
           // put any of your code to do something with the checkboxes here.
           alert("checkbox name : " + checkEl.name + " | checked : " + checkEl.checked);
        });
    });
    

    您可以对复选框使用.checked属性来检索复选框是否已选中。要在选中复选框时触发事件,可以在jquery中使用click事件。下面类似的内容可以列出页面上所有已选中的复选框

    $("input[type='checkbox']").click(function() {
        // if you want information about the specific checkbox that was clicked        
        alert("checkbox name : " + $(this).name + " | checked : " + $(this).checked);
    
        // if you want to do something with ALL the checkboxes on click. 
        $.each($["input[type='checkbox']", function(i, checkEl) {
           // put any of your code to do something with the checkboxes here.
           alert("checkbox name : " + checkEl.name + " | checked : " + checkEl.checked);
        });
    });
    

    您可以使用事件查看是否选中了复选框(onChange)。您可以在教程中阅读更多关于它的内容(请参阅标题为:Javascript是一种事件驱动语言的部分)

    您可以使用事件查看是否选中了复选框(onChange)。您可以在教程中阅读更多关于它的内容(请参阅标题为:Javascript是一种事件驱动语言的部分)

    jquerytotherescue!(因为您已将其标记为这样):

    (确保在html中为复选框添加一个
    name=“beddrooms”
    属性;提交表单时仍需要这些属性,以便在服务器上检索它们)

    我使用了一些伪选择器:

    • 查找页面上的所有输入复选框
    • 查找具有属性
      name=“beddrooms”
    • 查找属性
      checked=true的所有元素
    将它们组合为
    “输入:复选框[名称=卧室]:选中”
    ,jQuery将为您提供所有选中的复选框

    对于数组中的每一个元素,您可以简单地迭代并执行您想要的操作

    编辑

    您可以优化此代码以保存对复选框的引用,而不是每次单击时都让jQuery去获取所有复选框:

    var $checkboxes = $('input:checkbox[name=bedrooms]');
    $checkboxes.click(function() {
      var values = $checkboxes
        .filter(function() { return this.checked })
        .map(function() { return this.value })
        .get();
    
      // do something with values array
    })
    
    在此示例中,我已将复选框保存到var
    $checkboxes
    中。单击任何复选框,而不是返回DOM获取选中的复选框,我们只需
    $checkboxes
    向下搜索到选中的复选框,并将每个复选框放入一个数组中。
    get()
    只是一个模糊的要求,需要将“jQueryized”数组转换为常规JavaScript数组。

    jQuery来拯救!(因为您已将其标记为这样):

    (确保在html中为复选框添加一个
    name=“beddrooms”
    属性;提交表单时仍需要这些属性,以便在服务器上检索它们)

    我使用了一些伪选择器:

    • 查找页面上的所有输入复选框
      document.GetElementById("cbxCheckbox1");
      
      ...<input type="checkbox">...
      
      $(function(){
          $("input").click(function () {
              console.log($(this)[0].checked);
          });      
      });
      
      console.log($('input:checked'));
      
        <form name="myForm">
          <input type="checkbox" name="myCheck" 
             value="My Check Box"> Check Me
        </form>
      
         <a href="#" onClick="window.alert(document.myForm.myCheck.checked ? 'Yes' : 'No');">Am I Checked?</a>