【问题标题】:jQuery, not getting custom validate messages to workjQuery,没有让自定义验证消息起作用
【发布时间】:2012-04-19 12:05:38
【问题描述】:
我在表单中有以下字段:
<input id="edit-submitted-tel" name="submitted[tel]" value="telefoonnummer (optioneel)" size="4" maxlength="15" class="form-text" type="text">
我正在使用 jQuery Validate 来检查表单,一切正常,但我似乎无法让我的错误消息自定义每个字段。由于字段名称,下面给出了一个错误,我不知道它应该是什么:
$("#form").validate({
messages: {
submitted[tel] : "tel error custom msg"
}
});
当它是一个数组时应该是什么?
【问题讨论】:
标签:
jquery
arrays
validation
jquery-validate
messages
【解决方案1】:
使用两个引号
$("#form").validate({
messages: {
"submitted[tel]" : "tel error custom msg"
}
});
【解决方案2】:
我相信这只是quoting你的名字正确的问题。
来自文档:
如果您的表单包含使用非合法 JavaScript 标识符的名称的字段,则 >必须在使用规则选项时引用这些名称:
$("#myform").validate({
rules: {
// no quoting necessary
name: "required",
// quoting necessary!
"user[email]": "email",
// dots need quoting, too!
"user.address.street": "required"
}
});
所以在你的情况下,应该是这样的:
$("#form").validate({
messages: {
"submitted[tel]" : "tel error custom msg"
}
});
【解决方案3】:
解决方案
var $params = {debug:false, messages:{}};
var $c_nome = $("#c_nome").attr("name");
$params['messages'][$c_nome] = "O campo de nome é obrigatório";
var $c_email = $("#c_email").attr("name");
$params['messages'][$c_email] = "Por favor insira um e-mail válido";
var $c_assunto = $("#c_assunto").attr("name");
$params['messages'][$c_assunto] = "O campo de assunto é obrigatório";
var $c_msg = $("#c_msg").attr("name");
$params['messages'][$c_msg] = "O campo de mensagem é obrigatório";
$("#form-contato").validate($params);