如何在jquery中验证下拉字段

时间:2012-08-01 10:09:01

标签: jquery

我有一个隐藏式文本框。我刚刚得到了文本框的名称,并将其设置为下拉列表的ID。

现在我需要验证下拉列表。这就是我所做的。

     <input type="hidden" value="100" name="test1_season_1">

    $('input[value="100"][type="hidden"]').each(function(){
         myString = $(this).attr('name');

         $("#formId").validate({
            rules: {
                myString: "required",
                },
             messages: {
                 mystring: "<br>Please select from dropdown.",       
             }
         });
    });

但验证消息未显示。

所以我直接给出了文本框名称并检查了验证,这次它有效。

         $("#formId").validate({
            rules: {
                test1_season_1: "required",
                },
             messages: {
                 test1_season_1: "<br>Please select from dropdown.",       
             }
         });

我的问题是,每次动态生成文本框名称,所以我不能直接给它。如果存在两个隐藏类型文本框,我必须生成两个下拉列表。

请帮帮我。

提前致谢。

2 个答案:

答案 0 :(得分:0)

输入class并使用班级规则

$.validator.addClassRules("myvalidator", { 
   required: true, 
   message: "<br>Please select from dropdown." 
});

<input type="hidden" value="100" class="myvalidator" name="test1_season_2">
<input type="hidden" value="100" class="myvalidator" name="test1_season_3">
<input type="hidden" value="100" class="myvalidator" name="test1_season_999">

Docs for addClassRules here

答案 1 :(得分:0)

在初始化对象时,无法使用变量的值作为设置属性的键(无论如何,以这种方式)。初始化对象的语法将接受没有引号的键,因此您实际所说的是使用键myString创建一个属性,您想要的是创建一个属性,其中键是您{的值{1}}变量。

请尝试以下方法:

myString

不是为每个隐藏的输入调用myString = $(this).attr('name'); alert(correctString); // not entirely sure about this line - where does correctString come from? var rules = {}; rules[myString] = "required"; var messages = {}; messages[myString] = "<br>Please select from dropdown."; $("#formId").validate({ rules: rules, messages: messages }); ,而是创建两个包含所有规则和消息的对象,然后一次调用.validate()

.validate()