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