[英]jQuery Validation plugin want message aligned under the textbox
我将使用Jquery Validation插件向一些现有页面添加一些客户端验证。 https:// jqueryvalidation.org验证工作正常。 但是,因为用户希望所有字段都居中,所以验证消息显示为居中。
是否可以保留居中的文本框输入,但是验证消息是否出现在文本框下方并与文本框开始处对齐?
到目前为止,这是我展示的验证内容: 1
这就是我要通过将验证消息与其下方的文本框对齐来实现的。 2
这是一些我正在使用的简单代码,以获取有关使用验证的想法。 实际的表单通常具有12-15个输入字段,全部都居中。
我知道不建议使用“中心”标签,但如果可能的话,仍会尝试暂时保留它。
<script src="https://jqueryvalidation.org/files/lib/jquery.js"></script>
<script src="https://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script>
<script src="https://jqueryvalidation.org/files/dist/additional-methods.min.js"></script>
<script>
$(document).ready(function () {
$("#myForm").validate();
});
</script>
<style>
label.error {
display: block;
float: none;
color: red;
}
input { border: 1px solid black; }
input:focus { border: 1px solid black; }
input.error { border: 1px solid red; }
</style>
<center>
<form id="myForm" action="/SubmitSuccess.html">
<label>Input Number: </label>
<input type="text" name="input_number" data-rule-required="true" data-msg-required="Required field. Please enter 6 digits" size=10 maxlength=10 pattern="[0-9]{6}" data-msg-pattern="Please enter 6 digits" />
<br>
<label>Input Alpha: </label>
<input type="text" name="input_alpha" id="input_alpha" data-rule-required="true" data-msg-required="Required field. Please enter 6 uppercase characters" size=10 maxlength=10 pattern="[A-Z]{6}" data-msg-pattern="Must be 6 uppercase characters." />
<br><br>
Click Submit when complete<br>
<input type="submit" name="SUBMIT" value="SUBMIT" />
</form>
</center>
JFiddle- https: //jsfiddle.net/4d3xgud9
您可以使用errorPlacement函数将错误消息移动到所需的任何位置。 这是与Bootstrap 3一起使用的错误放置示例: 带有jQuery Validation插件的Bootstrap 3
您应该能够修改以下代码,使其以您想要的任何方式工作。
// override jquery validate plugin defaults
$.validator.setDefaults({
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
},
errorElement: 'span',
errorClass: 'help-block',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
仅CSS ...
使用您的jQuery验证插件。
好吧...经过一些HTML调整!
CSS已更改 (影响错误消息):
label.error {
display: block;
float: none;
color: red;
position:relative; /* added */
top:0.2em; /* added */
}
td.top{ /* added */
vertical-align:top; /* added */
} /* added */
td{ /* added */
padding-bottom:4px; /* added */
} /* added */
HTML改变 (使用的表! -嘿哇真是个好主意!):
<form id="myForm" action="/SubmitSuccess.html">
<table>
<tr>
<td class="top">
<label>Input Number: </label>
</td>
<td>
<input type="text" name="input_number" data-rule-required="true" data-msg-required="Required field. Please enter 6 digits" size=10 maxlength=10 pattern="[0-9]{6}" data-msg-pattern="Please enter 6 digits" />
</td>
</tr>
<tr>
<td class="top">
<label>Input Alpha: </label>
</td>
<td>
<input type="text" name="input_alpha" id="input_alpha" data-rule-required="true" data-msg-required="Required field. Please enter 6 uppercase characters" size=10 maxlength=10 pattern="[A-Z]{6}" data-msg-pattern="Must be 6 uppercase characters." />
</td>
</tr>
</table>
<br>
<br>
Click Submit when complete<br>
<input type="submit" name="SUBMIT" value="SUBMIT" />
</form>
label.error { display: block; float: none; color: red; position:relative; top:0.2em; } td.top{ vertical-align:top; } td{ padding-bottom:4px; } input { border: 1px solid black; } input:focus { border: 1px solid black; } input.error { border: 1px solid red; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <script src="https://jqueryvalidation.org/files/lib/jquery.js"></script> <script src="https://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script> <script src="https://jqueryvalidation.org/files/dist/additional-methods.min.js"></script> <script> $(document).ready(function () { $("#myForm").validate(); }); </script> </head> <body bgcolor="white"> <center> <form id="myForm" action="/SubmitSuccess.html"> <table> <tr> <td class="top"> <label>Input Number: </label> </td> <td> <input type="text" name="input_number" data-rule-required="true" data-msg-required="Required field. Please enter 6 digits" size=10 maxlength=10 pattern="[0-9]{6}" data-msg-pattern="Please enter 6 digits" /> </td> </tr> <tr> <td class="top"> <label>Input Alpha: </label> </td> <td> <input type="text" name="input_alpha" id="input_alpha" data-rule-required="true" data-msg-required="Required field. Please enter 6 uppercase characters" size=10 maxlength=10 pattern="[AZ]{6}" data-msg-pattern="Must be 6 uppercase characters." /> </td> </tr> </table> <br> <br> Click Submit when complete<br> <input type="submit" name="SUBMIT" value="SUBMIT" /> </form> </center> </body>
正确的用例:
$('#myform').validate({ // initialize the plugin
rules: {
"your field name or id": {
required: true
}
},
messages: {
"your field name or id": {
required: "Enter something"
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.