【发布时间】:2014-08-22 08:34:50
【问题描述】:
我正在尝试让 jQuery Validate 显示带有我预定义的错误消息的元素。但它所做的是将预定义的消息替换为其默认值。对我来说工作很重要的原因是,从后端应该可以将错误消息翻译成未定义数量的语言。
一个html sn-p
<select name="brand[]" id="brand_select" class="full-width" min="1">
<option value="0"><?php echo __r('Brand','order')?> *</option>
<?php foreach ($brands as $id => $brand): ?>
<option value="<?php echo $brand->id?>" <?php echo select(__val($form_data,'brand',$n),$brand->id)?>><?php echo $brand->brand?></option>
<?php endforeach; ?>
</select>
<label class="error" id="brand_select-error" for="brand_select"><?php echo __r('This field is required!!','validation')?></label>
<?php if ($bodytypes): ?>
<select name="bodytype[]" class="full-width" min="1">
<option value="0"><?php echo __r('Body type','order')?> *</option>
<?php foreach ($bodytypes as $id => $bodytype): ?>
<option value="<?php $bodytype->id?>" <?php echo select(__val($form_data,'bodytype',$n),$bodytype->id)?>><?php echo $bodytype->body_type?></option>
<?php endforeach; ?>
</select>
<label class="error"><?php echo __r('This field is required','validation')?></label>
<?php endif; ?>
<input class="full-width" type="text" name="first_regdate[]" placeholder="<?php echo __r('First registration date','order')?> *" value="<?php echo __val($form_data,'first_regdate',0)?>" required/>
<label class="error"><?php echo __r('This field is required','validation')?></label>
jQuery
$('#order_form_step_1').validate({
errorElement: "label",
errorPlacement: function(error,element) {
return true;
},
invalidHandler: function(event, validator) {
// 'this' refers to the form
var errors = validator.numberOfInvalids();
if (errors) {
$("div.error").show();
} else {
$("div.error").hide();
}
}
});
但不知何故,无论我在输入字段下方的错误 div 中填写什么消息,jQuery 都会覆盖它们。
不能选择使用不同的语言文件或内联验证代码。我真的需要显示 HTML 标签中的预定义消息,而不需要 jQuery 覆盖它们。
【问题讨论】:
-
jQuery Validate 插件创建并切换它自己的消息
label元素。它并非旨在切换您自己的标签。通常,您使用插件提供的messages选项创建自定义消息。为什么不能简单地将 PHP 生成的消息放入 JavaScript 而不是 HTML? -
只是因为我不想混淆 JS 和 HTML。 JS 应该在一个外部文件中。
-
使用内联 HTML 属性设置您的自定义消息然后:stackoverflow.com/a/16681452/594235
-
哦...!非常好!在文档中没有看到.. 谢谢!!
-
将其作为答案发布在下面...
标签: jquery jquery-validate multilingual