【发布时间】:2017-05-23 09:18:32
【问题描述】:
我正在尝试更改不同设备上的错误消息,因为例如,在台式机上,我有 6 个输入,3 合 3,平板电脑 2 合 2,移动设备 1 合 1,占 100%。
根据设计规范,消息必须按输入块一起显示。因此,在桌面上,每输入 3 次后,错误消息应以 3 比 3 的比例显示。
我还有其他要在每台设备上输入的错误消息。
<div class="col-xs-12 col-sm-4 col-sm-offset-2 col-md-3">
<label for="promotional-code">Código promocional</label>
<input id="promotional-code" name="promotional_code" type="text">
</div>
<div class="col-xs-12 col-sm-4 col-md-2">
<label for="first-name">Nombre</label>
<input id="first-name" name="first_name" type="text">
</div>
<div class="col-xs-12 col-sm-10 col-sm-offset-2 error-tablet-first"></div>
<div class="col-xs-12 col-sm-4 col-sm-offset-2 col-md-3 col-md-offset-0">
<label for="last-name">Apellidos</label>
<input id="last-name" name="last_name" type="text">
</div>
<div class="col-xs-12 col-sm-10 col-sm-offset-2 error-desk-first"></div>
<div class="col-xs-12 col-sm-4 col-md-3 col-md-offset-2">
<label for="email">Email</label>
<input id="email" name="email" type="email">
</div>
<div class="col-xs-12 col-sm-10 col-sm-offset-2 error-tablet-second"></div>
<div class="col-xs-6 col-sm-4 col-sm-offset-2 col-md-2 col-md-offset-0">
<label for="mobile-number">Teléfono móvil</label>
<input id="mobile-number" name="mobile_number" type="number">
</div>
<div class="col-xs-12 col-sm-4 col-md-3">
<label for="service">Servicio</label>
<select id="service" name="service">
<option value="">Seleccionar servicio</option>
<option value="visa">Reparaciones</option>
<option value="presupuestos">Presupuestos</option>
<option value="urgencias">Urgencias</option>
<option value="seguros">Seguros</option>
</select>
</div>
<div class="col-xs-12 col-sm-10 col-sm-offset-2 error-tablet-third"></div>
<div class="col-xs-12 col-sm-10 col-sm-offset-2 error-desk-second"></div>
例如,当它是桌面时,我将前三个消息放在标签“.error-desk-first”中
jQuery Validate 调用:
$("#form").validate({
ignore: null,
errorPlacement: function(error, element) {
if (desktop) {
if (element.attr("name") == "promotional_code"
|| element.attr("name") == "first_name"
|| element.attr("name") == "last_name") {
error.appendTo('.error-desk-first');
}
else if (element.attr("name") == "email"
|| element.attr("name") == "mobile_number"
|| element.attr("name") == "service") {
error.appendTo('.error-desk-second');
}
}
else if (tablet) {
if (element.attr("name") == "promotional_code"
|| element.attr("name") == "first_name") {
error.appendTo('.error-tablet-first');
}
else if (element.attr("name") == "email"
|| element.attr("name") == "last_name") {
error.appendTo('.error-tablet-second');
}
else if (element.attr("name") == "mobile_number"
|| element.attr("name") == "service") {
error.appendTo('.error-tablet-third');
}
else if (element.attr("name") == "privacy_politic"
|| element.attr("name") == "not_notify") {
var next = element.next();
error.insertAfter(next);
}
else {
error.insertAfter(element);
}
}
else {
error.insertAfter(element);
}
},
rules: {
promotional_code: "required",
first_name: "required",
last_name: "required",
email: "required",
mobile_number: "required",
service: "required"
},
messages: {
promotional_code: "Promotional code",
first_name: "Firs name",
last_name: "Last name",
email: "Email",
mobile_number: "Mobile number",
service: "Service"
}
文档准备好后,一切正常。但是当我尝试在页面调整大小事件中更新错误消息时,我试图破坏验证并重新创建它,但是桌面到平板电脑,仍然在桌面上显示错误消息。
我也尝试使用 errorPlacement 再次调用验证,但我什么也没得到。
有什么想法吗?我只发现使用 javascript 在每个设备上检索所有错误消息,因为它使用属性“id”创建它们,并在我感兴趣的地方创建一个 appendTo。
谢谢
【问题讨论】:
-
显示您定义
tablet和desktop变量的位置。
标签: javascript jquery resize jquery-validate