покажите ошибку проверки jQuery ниже элемента

У меня есть два элемента (выпадает), которые очень тесно помещаются. Эти элементы являются обязательными полями.

Я использую jQuery valiate для проверки полей. Сообщение об ошибке показывает и для элементов и для пространства между увеличениями элементов, поскольку сообщение об ошибке первого управления отображено около элемента

$('#RegisterForm').validate({
        rules: {
            Country:{required: true},
            State:{required: true}
        },
        messages: {
            Country:{required: "Select Country"},
            State:{required: "Select State"}
        }
    });

Я попытался использовать повреждение перед элементами как:

$('#RegisterForm').validate({
            rules: {
                Country:{required: true},
                State:{required: true}
            },
            messages: {
                Country:{required: "<br/>Select Country"},
                State:{required: "<br/>Select State"}
            }
        });

Когда я сделал так, второй элемент перемещается в следующую строку.

Как я могу показать сообщения об ошибках чуть ниже элементов, не влияя на выравнивание/размещение соседних элементов.

10
задан Prasad 14 January 2010 в 12:42
поделиться

1 ответ

Вы можете использовать низкий Уровень мыши крюк. См. Этот пример и проверьте наличие MESAGE WM_MOUSEMOVE в HoodCallback.

Вы также можете использовать класс IMESSAGEFILTER, чтобы поймать события мыши и вызвать событие, чтобы получить позицию (Примечание: это только получит позицию над окном, не снаружи этого):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace GlobalMouseEvents
{
   public partial class Form1 : Form
   {
      public Form1()
      {
         GlobalMouseHandler gmh = new GlobalMouseHandler();
         gmh.TheMouseMoved += new MouseMovedEvent(gmh_TheMouseMoved);
         Application.AddMessageFilter(gmh);

         InitializeComponent();
      }

      void gmh_TheMouseMoved()
      {
         Point cur_pos = System.Windows.Forms.Cursor.Position;
         System.Console.WriteLine(cur_pos);
      }
   }

   public delegate void MouseMovedEvent();

   public class GlobalMouseHandler : IMessageFilter
   {
      private const int WM_MOUSEMOVE = 0x0200;

      public event MouseMovedEvent TheMouseMoved;

      #region IMessageFilter Members

      public bool PreFilterMessage(ref Message m)
      {
         if (m.Msg == WM_MOUSEMOVE)
         {
            if (TheMouseMoved != null)
            {
               TheMouseMoved();
            }
         }
         // Always allow message to continue to the next filter control
         return false;
      }

      #endregion
   }
}
-121--2387567-

Используйте опцию Опция (см. Документацию здесь: http://docs.jquery.com/plugins/validation/validate#toptions )

$('#RegisterForm').validate({
        rules: {
            Country:{required: true},
            State:{required: true}
        },
        messages: {
            Country:{required: "Select Country"},
            State:{required: "Select State"}
        },
        errorPlacement: function(error, element) {
            error.appendTo( element.parent("td").next("td") );
        }
    });

Конечно, Придется адаптировать код к вашей ситуации.

16
ответ дан 3 December 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: