1

我有一条规则,其格式似乎与此线程中的答案类似,但未正确验证。如果我注释掉这条规则,验证就会在表单的其余部分正确执行。我发现的其他语法错误导致了相同的结果,所以我希望这里有一个语法错误,但如果我能发现它就会被删除。

规则是

freq: {
    required: {
        depends: {function(element){
            return $('#freqBand').val().length > 0 &&
            $('#freqBand').val() != "24GHz");
            }
        }
    }
},

我期望如果输入字段 freqBand(选择输入)值不是“24GHz”或什么都不是,那么 freq 字段是必需的。

我只是在学习 jquery,所以它可能是一个真正的前额拍板。

编辑 11/28

我进行了更多故障排除,发现 $('#freqBand').val() 未定义。

它在 HTML 中被发现为

<select  name="freqBand" tabindex="6">
        <option value="" label="&ndash;Choose&ndash;" >&ndash;Choose&ndash;</option>
        <option value="27MHz" label="27 MHz" >27 MHz</option>
        <option value="50MHz" label="50 MHz" >50 MHz</option>
        <option value="75MHz" label="75 MHz" >75 MHz</option>
        <option value="24GHz" label="2.4 GHz" >2.4 GHz</option>
</select>

查询验证文档说选择元素的正确语法应该是

$("select.freqBand option:selected").val()

但这也解决了未定义的问题。这个添加的信息是否可以帮助某人帮助我?

4

3 回答 3

1

我知道这是一篇旧帖子,但我目前遇到了类似的问题。也就是说,我担心将 id 选择器#用于 name 属性。根据我的发现,id 选择器绝不可用于名称属性,而是应通过选择器来处理名称属性[name='name']

请参阅:HTML 中的名称与 Id 属性

这可能不能完全解决您的问题,但肯定是现在而不是以后要注意的事情。再说一次,我知道已经一年了。另外,如果我对名称属性的 id 选择器是正确的,那么您的代码的一个大问题已经解决。

除此之外,Joke_Sense 的所有信息仍然真实且相关。

哦,我是 StackOverflow 的新手(虽然我还没有注册过我不认为的帐户)。如果有人可以给我反馈,这个回答是否......好吧,这只是一个旁白。我只是要求建设性的批评。我有知识和诀窍,我只是不想自欺欺人。

于 2014-10-24T15:09:59.810 回答
0

失踪colon后取决于。附加braces后依赖是不必要的。试试这个:

freq: {
required: {
    depends: function(element){ //Missing colon here and no opening braces required
        return ($('#freqBand').val().length > 0 &&
        $('#freqBand').val() != "24GHz")); 
        }
     }
},
于 2013-11-28T04:23:29.693 回答
0

这是一个旧线程,可能已经解决,但我想我会试一试。

我看到的最明显的问题是您的选择输入没有分配给它的 ID,但是您在依赖语句中调用了一个 ID $('#freqBand').val():. 您需要向选择添加一个 ID,以便以这种方式引用元素。

另请注意,您的验证语句也缺少括号。在“24GHz”之后你有一个结束,但你没有一个开始,这也可能导致问题。

另外,不确定为什么要使用长度。我认为您可能希望确保该值中包含某些内容,因此我可能会稍微修改一下depends 语句。

无论如何,所有这三个工作(使用版本 1.13.1 验证):

freq: {
    required: { 
        depends: function(element){
            return ($("#freqBand").val() != "" &&  $("#freqBand").val() != "24GHz")
        } 
    } 
}

freq: {
    required: { 
        depends: function(element){
            return ($("select[name=freqBand]").val() != "" &&  $("select[name=freqBand]").val() != "24GHz")
        } 
    } 
}

freq: {
    required: { 
        depends: function(element){
            return ( ($("select[name=freqBand]").val().length > 0) &&  $("select[name=freqBand]").val() != "24GHz")
        } 
    } 
}

希望这可以帮助。

于 2015-05-08T12:58:01.110 回答