【问题标题】:javascript gender validation [closed]javascript性别验证[关闭]
【发布时间】:2014-04-19 19:18:30
【问题描述】:

我正在尝试对注册表单进行验证,但我在使用 javascript 中的单选按钮进行性别验证时遇到了问题。 我希望任何人都可以帮助我解决这个问题:D

这是我的代码

function validate(form)
{
    var genderM=form.gender_male.value;
    var genderF=form.gender_female.value;

    if(genderM.checked==false && genderF.checked==false )
       {
            alert("You must select male or female");
            return false;
       }   
 }

【问题讨论】:

  • 在这个现代世界中,您可能还应该提供一个“其他”选项:)
  • 如果不显示相关的 HTML 和事件分配,很难说出示例代码的所有问题。 jsFiddle 显示您的简化问题也会有所帮助。

标签: javascript validation registration


【解决方案1】:

你可以这样做:

HTML:

<form name="foo">
    <input name="gender" type="radio" value="m" /> Male
    <input name="gender" type="radio" value="f" /> Female
    <input type="button" onclick="validateGender()" value="validate" />
</form>

JavaScript:

<script>
    function validate(form) {
        var gender = form.querySelectorAll('input[name="gender"]:checked');
        if (!gender.length) {
            alert('You must select male or female');
            return false;
        }
    }
</script>

Demo

希望这会有所帮助。

编辑:我编辑了脚本,所以现在表单作为参数传递给你的脚本。

【讨论】:

    【解决方案2】:

    如果没有看到相关的 HTML 和相关的事件分配,那么您可能希望执行类似此示例的操作。

    HTML

    <form id="test">
        <label for="gender">Gender:</label>
        <input type="radio" name="gender" value="0">Male</input>
        <input type="radio" name="gender" value="1">Female</input>
        <input type="submit" value="Submit">
    </form>
    

    Javascript

    function validate(form) {
        var isChecked = Array.prototype.some.call(form.querySelectorAll('input[name=gender]'), function (radio) {
            return radio.checked;
        });
    
        if (!isChecked) {
            alert("You must select Male or Female");
        }
    
        return isChecked;
    }
    
    document.getElementById('test').addEventListener('submit', function (evt) {
        if (!validate(evt.target)) {
            evt.preventDefault();
        }
    });
    

    开启jsFiddle

    【讨论】:

      【解决方案3】:

      您还需要删除 .value 的

      function validate(form)
      {
          var genderM=form.gender_male;
          var genderF=form.gender_female;
      
          if(genderM.checked==false && genderF.checked==false ) {
              alert("You must select male or female");
              return false;
          }   
      }
      

      【讨论】:

      • 谢谢先生,您的脚本已经解决了我的问题,我尝试删除 .value 及其工作
      【解决方案4】:

      你有一个错字。您在第二次作业中使用了性别M 两次而不是性别F

         function validate(form)
          {
              var genderM=form.gender_male.value;
              var genderF=form.gender_female.value; //error here
      
              if(genderM.checked==false && genderF.checked==false )
                 {
                      alert("You must select male or female");
                      return false;
                 }   
           }
      

      【讨论】:

      • 是的,我已经解决了这个问题,但仍然无法正常工作:(
      • ((form.gender[0].checked == false) && (form.gender[1].checked == faslse)){ alert("请选择性别");
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      相关资源
      最近更新 更多