Jquery Validate自定义错误消息位置

ih99xse1  于 2023-08-04  发布在  jQuery
关注(0)|答案(8)|浏览(226)

这看起来很简单,但我想不通。我正在使用jquery validate插件。我正在尝试验证<input name=first><input name=second>以将错误消息输出到:

  1. <span id="errNm2"></span> <span id="errNm1"></span>

字符串
我已经开始写errorPlacement了:这是您自定义错误消息位置的地方。
如何将错误消息放入这些<span>中?

  1. $(document).ready(function () {
  2. $('#form').validate({
  3. errorPlacement: function(error, element) {
  4. error.append($('.errorTxt span'));
  5. },
  6. rules,
  7. });
  1. <input type="text" name="first"/>
  2. <input type="text" name="second"/>
  3. <div class="errorTxt">
  4. <span id="errNm2"></span>
  5. <span id="errNm1"></span>
  6. </div>

的数据

6yoyoihd

6yoyoihd1#

您应该使用errorLabelContainer

  1. jQuery(function($) {
  2. var validator = $('#form').validate({
  3. rules: {
  4. first: {
  5. required: true
  6. },
  7. second: {
  8. required: true
  9. }
  10. },
  11. messages: {},
  12. errorElement : 'div',
  13. errorLabelContainer: '.errorTxt'
  14. });
  15. });
  1. .errorTxt{
  2. border: 1px solid red;
  3. min-height: 20px;
  4. }
  1. <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
  2. <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script>
  3. <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/additional-methods.js"></script>
  4. <form id="form" method="post" action="">
  5. <input type="text" name="first" />
  6. <input type="text" name="second" />
  7. <div class="errorTxt"></div>
  8. <input type="submit" class="button" value="Submit" />
  9. </form>

如果你想保留你的结构

  1. jQuery(function($) {
  2. var validator = $('#form').validate({
  3. rules: {
  4. first: {
  5. required: true
  6. },
  7. second: {
  8. required: true
  9. }
  10. },
  11. messages: {},
  12. errorPlacement: function(error, element) {
  13. var placement = $(element).data('error');
  14. if (placement) {
  15. $(placement).append(error)
  16. } else {
  17. error.insertAfter(element);
  18. }
  19. }
  20. });
  21. });
  1. #errNm1 {
  2. border: 1px solid red;
  3. }
  4. #errNm2 {
  5. border: 1px solid green;
  6. }
  1. <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
  2. <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script>
  3. <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/additional-methods.js"></script>
  4. <form id="form" method="post" action="">
  5. <input type="text" name="first" data-error="#errNm1" />
  6. <input type="text" name="second" data-error="#errNm2" />
  7. <div class="errorTxt">
  8. <span id="errNm2"></span>
  9. <span id="errNm1"></span>
  10. </div>
  11. <input type="submit" class="button" value="Submit" />
  12. </form>
展开查看全部
xwmevbvl

xwmevbvl2#

您可以简单地创建与同一函数中所需字段相匹配的额外条件。例如,使用上面的代码…

  1. $(document).ready(function () {
  2. $('#form').validate({
  3. errorPlacement: function(error, element) {
  4. //Custom position: first name
  5. if (element.attr("name") == "first" ) {
  6. $("#errNm1").text(error);
  7. }
  8. //Custom position: second name
  9. else if (element.attr("name") == "second" ) {
  10. $("#errNm2").text(error);
  11. }
  12. // Default position: if no match is met (other fields)
  13. else {
  14. error.append($('.errorTxt span'));
  15. }
  16. },
  17. rules
  18. });

字符串
希望有帮助!

展开查看全部
0sgqnhkj

0sgqnhkj3#

  1. if (e.attr("name") == "firstName" ) {
  2. $("#firstName__validate").text($(error).text());
  3. console.log($(error).html());
  4. }

字符串
试试这个获取错误对象的文本

vuktfyat

vuktfyat4#

超文本标记语言

  1. <form ... id ="GoogleMapsApiKeyForm">
  2. ...
  3. <input name="GoogleMapsAPIKey" type="text" class="form-control" placeholder="Enter Google maps API key" />
  4. ....
  5. <span class="text-danger" id="GoogleMapsAPIKey-errorMsg"></span>'
  6. ...
  7. <button type="submit" class="btn btn-primary">Save</button>
  8. </form>

字符串
JavaScript

  1. $(function () {
  2. $("#GoogleMapsApiKeyForm").validate({
  3. rules: {
  4. GoogleMapsAPIKey: {
  5. required: true
  6. }
  7. },
  8. messages: {
  9. GoogleMapsAPIKey: 'Google maps api key is required',
  10. },
  11. errorPlacement: function (error, element) {
  12. if (element.attr("name") == "GoogleMapsAPIKey")
  13. $("#GoogleMapsAPIKey-errorMsg").html(error);
  14. },
  15. submitHandler: function (form) {
  16. // form.submit(); //if you need Ajax submit follow for rest of code below
  17. }
  18. });
  19. //If you want to use ajax
  20. $("#GoogleMapsApiKeyForm").submit(function (e) {
  21. e.preventDefault();
  22. if (!$("#GoogleMapsApiKeyForm").valid())
  23. return;
  24. //Put your ajax call here
  25. });
  26. });

展开查看全部
x6h2sr28

x6h2sr285#

例如,只需添加一个与输入字段具有+“-error”相同id的空标签标签。

  1. <input id="myID1" required>
  2. <input id="myID2" required>
  3. <div>
  4. <label id="myID1-error" class="error" for="myID1"></label>
  5. <label id="myID2-error" class="error" for="myID2"></label>
  6. </div>

字符串

nwlqm0z1

nwlqm0z16#

这对我很有效
实际上,error是一个数组,其中包含了我们传递的元素的错误信息和其他值,你可以console.log(error);请参阅. Inside if condition“error.appendTo($(element).parents('div').find($('. errorEmail')));“只不过是在代码中查找html元素并传递错误消息。

  1. $("form[name='contactUs']").validate({
  2. rules: {
  3. message: 'required',
  4. name: "required",
  5. phone_number: {
  6. required: true,
  7. minlength: 10,
  8. maxlength: 10,
  9. number: false
  10. },
  11. email: {
  12. required: true,
  13. email: true
  14. }
  15. },
  16. messages: {
  17. name: "Please enter your name",
  18. email: "Please enter a valid email address",
  19. message: "Please enter your message",
  20. phone_number: "Please enter a valid mobile number"
  21. },
  22. errorPlacement: function(error, element) {
  23. $("#errorText").empty();
  24. if(error[0].htmlFor == 'name')
  25. {
  26. error.appendTo($(element).parents('div').find($('.errorName')));
  27. }
  28. if(error[0].htmlFor == 'email')
  29. {
  30. error.appendTo($(element).parents('div').find($('.errorEmail')));
  31. }
  32. if(error[0].htmlFor == 'phone_number')
  33. {
  34. error.appendTo($(element).parents('div').find($('.errorMobile')));
  35. }
  36. if(error[0].htmlFor == 'message')
  37. {
  38. error.appendTo($(element).parents('div').find($('.errorMessage')));
  39. }
  40. }
  41. });

字符串

展开查看全部
cidc1ykv

cidc1ykv7#

在validate方法中添加以下代码:

  1. errorLabelContainer: '#errors'

字符串
在你的html中,在你想捕捉错误的地方简单地写上:

  1. <div id="errors"></div>


所有错误都将保存在div中,与输入框无关。
对我来说效果很好。

628mspwn

628mspwn8#

下面是使用jQuery验证逻辑在不同位置显示错误消息的代码:

  1. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/jquery.validate.min.js"></script>
  2. <script>
  3. $(document).ready(function() {
  4. $('#form').validate({
  5. errorPlacement: function(error, element) {
  6. if (element.attr("name") == "policy_accepted") {
  7. error.appendTo($('#policy_accepted_error'))
  8. } else {
  9. error.insertAfter(element);
  10. }
  11. },
  12. errorClass: 'text-danger',
  13. rules: {
  14. policy_accepted: {
  15. required: true,
  16. }
  17. },
  18. messages: {
  19. policy_accepted: {
  20. required: "You have to accept our terms & condition",
  21. },
  22. }
  23. });
  24. });
  25. </script>

个字符

展开查看全部

相关问题