【问题标题】:JQuery validation-select required if checkbox checked如果选中复选框,则需要 JQuery 验证选择
【发布时间】:2011-09-28 05:53:12
【问题描述】:

如果选中了特定的复选框,我想使用 jquery 从所需的选择框中进行选择(即不能将其保留为空白默认值)。我的代码:

$(document).ready(function(){
  $("#myForm").validate({
    rules: {
      myDropDown: {
        required: {       
          depends: function(element) {
            return $("#myCheckbox:checked")
          }
        }
      }
    }
  })
})

html:

<input type="checkbox" name="myCheckbox" id="myCheckbox" value="1">
<select name="myDropDown" id="myDropDown">
  <option value="" selected></option>
  <option value="1">Choice 1</option>
  <option value="2">Choice 2</option>
  <option value="3">Choice 3</option>
</select>

不仅代码无法正常工作,它还会丢弃我作为 javascript 的下一部分所拥有的 jquery 选项卡。

任何建议表示赞赏。

编辑:现在我已经整理了所有括号,现在的行为是,无论复选框是否被选中,它都会使选择框成为必填字段 - 即依赖部分不起作用。页面上的其他 javascript 现在可以正常工作了。

【问题讨论】:

  • 对不起,我正在使用 jquery.validate.min.js

标签: jquery jquery-validate


【解决方案1】:

我不知道你用的是什么插件,但是

 return $("#myCheckbox:checked")

如果您的复选框被选中,则返回一个 Jquery 对象。我认为这样做会更正确:

 return $("#myCheckbox").is(':checked')

返回真或假。

也许这与你的问题无关

【讨论】:

【解决方案2】:

请这样尝试

$(document).ready(function(){
  $("#myForm").validate({
    rules: {
       myDropDown:{
          required: function (element) {
             if($("#myCheckbox").is(':checked')){
                 var e = document.getElementById("myDropDown");
                 return e.options[e.selectedIndex].value=="" ;                            
             }
             else
             {
                 return false;
             }  
          }  
       }
    }
  });
});

【讨论】:

  • 嗨,谢谢,但无论是否选中复选框,这仍然需要下拉菜单。
  • 我编辑了代码。请检查一下。在 else 条件中添加了一个 return false
【解决方案3】:

这就像一个魅力

inputname:
{
    required: function(){
        if($("select[name=inputname]").val() == 1){
            return true;
        }
        else
        {
            return false;
        }
    }
}

您可以根据自己的喜好编辑输入名称。

要将其更改为输入字段,您可以将选择部分更改为输入

【讨论】:

  • 可以压缩成required: function(){ return $("select[name=inputname]").val() == 1; }
  • 或者更确切地说:required: function(){ return $("#elementID").val() === 1; }
  • 根据文档 (jqueryvalidation.org/category/methods/…),正确的使用方法是 rules : { myDropDown: required:{"#myCheckbox:checked"}}
【解决方案4】:

它应该能够像这样工作:

rules : {
 myDropDown:{required:"#myCheckbox:checked"}
}

【讨论】:

猜你喜欢
  • 2011-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 2019-08-19
相关资源
最近更新 更多