0

我有一个隐藏类型的文本框。我刚刚获得了文本框的名称并将其设置为下拉列表的 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.",       
             }
         });

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

请帮我不要这个。

提前致谢。

4

2 回答 2

0

给输入 aclass并使用类规则

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

addClassRules这里的文档

于 2012-08-01T10:12:21.283 回答
0

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

您可以创建两个包含所有规则和消息的对象,而不是调用.validate()每个隐藏的输入,然后调用.validate()一次:

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
});
于 2012-08-01T10:16:02.153 回答