【问题标题】:only submit is check box is checked [duplicate]仅在选中复选框时提交[重复]
【发布时间】:2013-05-10 08:43:47
【问题描述】:
<div id="checkbox">    
<input type="checkbox" id="1" name="1"/><br/>
<input type="checkbox" id="2" name="2"/><br/>
<input type="checkbox" id="3" name="3"/><br/>
<input type="submit" value="Create"/>
</div>

我有上面的代码,需要进行某种检查,以便表单仅在至少选中一个框时提交,如果选中了 2 个框,则不会提交,因此只检查以确保选中 1。

非常感谢

【问题讨论】:

  • 到目前为止你做了什么?
  • 使用单选按钮 ..
  • 首先你有什么累但没用的?此外,使用数字作为 ID 是不可取的!
  • 在 HTML5 中,ID 允许以数字开头 AFAIK
  • 到目前为止你已经尝试过什么

标签: php javascript html


【解决方案1】:

如果您有兴趣让用户选择一个或多个值,则使用 Checkbox 是有意义的。为了您的目的,我会推荐单选按钮

使用单选按钮而不是复选框,并为它们提供相同的名称。然后根本不使用javascript。

【讨论】:

  • 请检查我的答案,,(使用复选框)
  • 是的,但为什么要使用复选框?
  • 因为 Dan Howes 要求 input type="checkbox" 这是唯一的原因 :)
【解决方案2】:

使用单选按钮

<div id="checkbox">   
<input type="radio" id="1" name="radio_button"/><br/>
<input type="radio" id="2" name="radio_button"/><br/>
<input type="radio" id="3" name="radio_button"/><br/>
<input type="submit" value="Create"/>
</div>

【讨论】:

  • @pooshonk :thanx,复制粘贴错误.. :D :D
【解决方案3】:

我建议使用单选按钮组。你可以关注这个reference

使用单选按钮,您无需使用 javascript。但是如果你坚持使用复选框,使用javascript是一种解决方案。

【讨论】:

    【解决方案4】:

    为什么不直接使用单选按钮?或在此复选框上添加一个类(如果您想要复选框)并取消选择所有onClick

    【讨论】:

      【解决方案5】:

      使用Javascript函数:

      <script>
      function checkifclicked()
      {
      
          //alert($('input[name=cb]').val());
          var checkboxs=document.getElementsByName("cb");
          var okay=false;
          for(var i=0,l=checkboxs.length;i<l;i++)
          {
              if(checkboxs[i].checked)
              {
                  okay=true;
              }
          }
          if(!okay){
      
              alert("Please check a checkbox");
              return false;
          }
      
      }
      </script>
      
      
      <form name="send_email" id="send_email" action="send_email.php" onSubmit="return checkifclicked()" method="post">
      
      <div id="checkbox">    
      <input type="checkbox" id="1" name="cb"/><br/>
      <input type="checkbox" id="2" name="cb"/><br/>
      <input type="checkbox" id="3" name="cb"/><br/>
      <input type="submit" value="Submit"/>
      </div>
      
      
      </form>
      

      Demo Here>>

      【讨论】:

        【解决方案6】:

        如果只选中其中一个,则应使用单选按钮。

        <div id="checkbox">    
        <input type="radio" id="1" name="somename"/>Label1<br/>
        <input type="radio" id="2" name="somename"/>Label2<br/>
        <input type="radio" id="3" name="somename"/>Label3<br/>
        <input type="submit" value="Create"/>
        </div>
        

        http://jsfiddle.net/WHDFt/

        您还想确保其中之一被选中。有一些解决方案。

        1. 进行默认检查。例如,您可以默认选中第一个收音机。取消选中单选按钮是不可能的,所以总会有选中的字段。

        2. 您可以在提交表单时使用 JavaScript 进行验证。

        【讨论】:

          【解决方案7】:

          提供 id 以提交按钮,例如:

          <input id="submit" type="submit" value="Create"/>
          

          js代码:

          $(function(){
             $('#submit').click(function(){
                if($('#checkbox input:checked')){
                   return true;
                }
                return false;
             });
          });
          

          但使用多选对你来说更好

          【讨论】:

            【解决方案8】:
            if(document.getElementById('1').checked || document.getElementById('2').checked || document.getElementById('3').checked)
             {
            
                 if((document.getElementById('1').checked && document.getElementById('2').checked ) || (document.getElementById('2').checked && document.getElementById('3').checked ) || (document.getElementById('1').checked && document.getElementById('3').checked ))
                  {
            
                     return false;
                  }
            
                  else
                  {
                      //dosomthing
            
                  }
            
                }
            

            【讨论】:

              猜你喜欢
              • 2014-09-20
              • 2021-09-22
              • 1970-01-01
              • 2013-01-05
              • 1970-01-01
              • 2015-08-24
              • 2015-11-21
              相关资源
              最近更新 更多