【问题标题】:Validating radio input in jQuery on button function在按钮功能上验证 jQuery 中的单选输入
【发布时间】:2014-05-21 09:19:12
【问题描述】:

我有一个带有 2 个选项的无线电输入,让用户定义他们的性别。单击按钮后,jquery 应该检查是否选择了任何内容,并且,

如果是 - 隐藏带有无线电输入的 div 并显示另一个;

如果不是(未选择任何内容)显示错误文本。

问题是,如果没有选择任何内容,代码确实会显示错误文本,但即使用户选择了性别,它也不会隐藏此 div 并显示另一个。

jQuery部分:

           $('#button_1').click(function(){
        gender = $('input:radio[name=1_gender]:checked').val();
              if ('input:radio[name=1_gender].not(:checked') {
              $("label#1_gender_error").show();
              $("input#1_gender").focus();
              return false;
              } 
            if ('input:radio[name=1_gender]:checked') {
            $('#gender_div').hide();
            $('#other_div').show();
            }
          });

HTML部分:

      <div id="gender_div">
    <form name="form_gender" action="">
    <fieldset>
      <label for="gender" id="1_gender_label">You are...</label><br />
      <input type="radio" name="1_gender" id="1_men"  value="men" class="text-input" />
      <label for="men">Men</label><br />

   <input type="radio" name="1_gender" id="1_woman"  value="woman" class="text-input" />
   <label for="woman">Woman</label>
    <br />

    <label class="error" for="1_gender" id="1_gender_error">Text for shaming for not selecting gender</label>
    <br />
    <input type="button" name="submit" class="button" id="button_1" value="Next" />
    </fieldset>
    </form>
  </div>

任何帮助或提示将不胜感激

【问题讨论】:

    标签: jquery button radio


    【解决方案1】:

    有点像

       $('#button_1').click(function () {
    
    
          if (!$("input:radio[name=1_gender]").is(":checked")) {
              $("label#1_gender_error").show();
              $("input#1_gender").focus();
              console.log("not checked")
              return false;
          } else {
              if ('input:radio[name=1_gender]:checked') $('#gender_div').hide();
              $('#other_div').show();
              console.log("checked")
          }
      });
    

    会为你工作

    Fiddle

    您正在验证 if 语句中的字符串

    if ('input:radio[name=1_gender].not(:checked')
    

    它总是会导致 true

    【讨论】:

    • 好的,你正在测试你里面的一个字符串 if 语句总是会产生一个真值,使用 is(":checked") 我们确定单选按钮是否被检查,因为代码块是(未选中)我添加了所需的代码!否定值
    • 是的,这是有道理的。再次感谢!
    猜你喜欢
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多