2012-01-23 3 views
1

Я использую jquery Form Wizard и хотел бы написать специальные правила проверки.Запись пользовательских проверок с использованием мастера формы jquery

Моя текущая проблема заключается в том, что я хотел бы проверить поле в качестве URL-адреса, но если пользователь забыл добавить префикс «http: //», я бы не хотел его отклонять и вместо этого добавлял префикс на стороне сервера.

В настоящее время я использую класс url для этой проверки, который не поддерживает эту опцию. Чтобы решить проблему, я хотел бы использовать настраиваемое регулярное выражение вместо валидатора url (в основном, просто проверьте, что поле URL имеет период и длиной не менее пяти символов).

Я не смог заставить jquery-ui-form-wizard использовать регулярное выражение или вызвать функцию обратного вызова для проверки. Примечание. Я хочу проверить на каждом шаге, а не только на отправке.

добавить следующее к опциям мастеров формы, и моя функция вызывается, - но даже если она возвращает ложь, нажав рядом все еще продолжается на следующую страницу:

remoteAjax: { 
    "page1" : { 
    url: "./validateWizard1", 
    dataType: "json", 
    beforeSend: function() { 
     // This code is called before "page1" is turned. 
     return false; 
    }, 
    success: handleValidateSubmit 
    } 
} 

Я хотел бы установить либо пользовательское сообщение об ошибке (которое будет отображаться стандартным способом плагина проверки) или повторно использовать URL-сообщение.

Каков наилучший способ достичь этого?

ответ

0

Вот ответ от Яна Сундман, автор Jquery-форм-мастера (он просил меня, чтобы разместить его на его место):

Если я правильно понимаю ваш вопрос, вы хотели бы сделать проверка подлинности в методе beforeSend до отправки запроса на сервер с помощью remoteAjax?

Если вы правильно поняли, что используете плагин проверки достоверности , проверьте правильность ввода, но правило URL не поддерживает ваши потребности? Если это так, вы можете добавить новые методы, используя http://docs.jquery.com/Plugins/Validation/Validator/addMethod , в котором вы можете использовать регулярное выражение и все, что захотите.

Сказанное, кажется, что метод beforeSend в мастере не отключил вызов ajax, даже если вы вернете false. Это ошибка, и я напишу, чтобы исправить ее в следующем выпуске.

Чтобы обойти это, попробуйте использовать обратный вызов beforeSubmit вместо (предоставляется плагином формы). например :

remoteAjax: { 
"page1" : { 
    url: "./validateWizard1", 
    dataType: "json", 
    beforeSubmit: function() { 
    // This code is called before "page1" is turned. 
    return false; 
    }, 
    success: handleValidateSubmit 
} 
} 

Надеюсь, это поможет.

+0

Указатель на 'addMethod' был прав - это так просто - просто посмотрите пример: http://docs.jquery.com/Plugins/Validation/Validator/addMethod#examples – ripper234

Смежные вопросы