如何验证jquery中的下拉字段

如何验证jquery中的下拉字段,jquery,Jquery,我有一个隐藏的文本框。我刚得到文本框的名称,并将其设置为下拉列表的id 现在我需要验证下拉列表。这就是我所做的 <input type="hidden" value="100" name="test1_season_1"> $('input[value="100"][type="hidden"]').each(function(){ myString = $(this).attr('name'); $("#formId").v

我有一个隐藏的文本框。我刚得到文本框的名称,并将其设置为下拉列表的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.",       
             }
         });
我的问题是,每次文本框名称都会动态生成,所以我不能直接给出它。如果存在两个隐藏类型文本框,我必须生成两个下拉列表

请帮我解决这个问题

提前感谢。

给输入一个类并使用类规则

$.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">

无论如何,在以这种方式初始化对象时,不能将变量的值用作设置属性的键。初始化对象的语法将接受不带引号的键,因此您实际要说的是使用键myString创建属性,您想要的是使用键作为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
});

感谢您的帮助。请忽略alertcorrectString;。如果只有一个下拉列表,上面的代码可以正常工作,但是如果有两个下拉列表,则只显示一个下拉列表的错误消息。@saran我要看的第一件事是是否调用元素。多次对元素进行验证会覆盖以前调用设置的规则。因为我自己不使用任何验证插件,或者我知道你正在使用哪个插件,链接到你的特定插件的文档会很有用,所以我不能帮你更多。插件版本是jQuery验证插件1.5。5@saran我对答案进行了编辑,添加了一段额外的代码来调用;我不确定这是否有帮助,但也许值得一试。
var rules = {};
var messages = {};

$('input[value="100"][type="hidden"]').each(function() {
    myString = $(this).attr('name');
    rules[myString] = 'required';
    messages[myString] = '<br>Please select from dropdown.';
});

$("#formId").validate({
    rules: rules,
    messages: messages
});