我正在使用jquery验证,当我像这样验证时
$("#form").validate({
// errorLabelContainer: $("div#error"),
errorElement: "p",
errorClass: "form-error",
rules: {
name: {
required: true,
minlength: 5
}
}
});
一切正常,但如果我有像这样的“x.child.1.0.t”的div id,我必须使用这样的东西
$("#form").validate({
// errorLabelContainer: $("div#error"),
errorElement: "p",
errorClass: "form-error",
rules: {
x.child.1.0.t: {
required: true,
minlength: 5
}
}
});
这不起作用,怎么样?
答案 0 :(得分:4)
将其置于"
或'
内,与string
一样,不要忘记使用name
attr。
$("#form").validate({
// errorLabelContainer: $("div#error"),
errorElement: "p",
errorClass: "form-error",
rules: {
'x.child.1.0.t': {
required: true,
minlength: 5
}
}
});
A validation rule associates an element with a validation method, like "validate input with name "primary-mail" with methods "required" and "email".
reference
名称复杂的字段(括号,点)
If your form consists of fields using names that aren't legal JavaScript identifiers, you have to quote those names when using the rules option:
reference
答案 1 :(得分:4)
...但是,如果我有像这样的{1}}的div id ......不起作用......
你必须做两件事......
使用x.child.1.0.t
的{{1}}属性,而不是name
。默认情况下,input
插件正在查找id
的{{1}}属性,而不是.validate()
。 See docs, under rules:
item.
将名称放在name
选项中的引号内。 See docs regarding complex naming.
<强> HTML:强>
input
<强> jQuery的:强>
id
答案 2 :(得分:1)
如果您想通过id
而不是name
进行验证,则必须执行以下操作:
$("form").validate({
errorElement: "p",
errorClass: "form-error"
});
// This part is ugly because of your strange id
$("#x\\.child\\.1\\.0\\.t").rules("add", {
required: true,
minlength: 5
});
演示:http://jsfiddle.net/eyKW9/3/
反斜杠的原因是你必须转义.
个字符,否则jQuery / Sizzle认为它是一个类选择器。
一般来说,最好避免像这样的id
值,因为你会遇到javascript和css的问题。如果可能的话,坚持使用alphanum dash和下划线。