2010-02-10 3 views
13

У меня есть проблема с перфекционированием, которую я исследовал и подошел пустой;jQuery validate(); Только подтвердите выбор по нажатию одной кнопки отправки

Сценарий: У меня есть форма, с Validate() плагин на Jquery bassistance.de в (http://docs.jquery.com/Plugins/Validation).

Выполняет ли работа на отлично, однако; Я два типа кнопки отправки.

Один из них представляет форму, как обычно, вызывая мои ошибки в возврате и возвращает ошибки или успех.

Другой тип - для всех интенсивных и предназначенных для отправки кнопки браузеру, однако он сообщает моему внутреннему концу добавить еще один раздел входов (т. Е. Повторяющийся элемент для истории занятости). Я хочу, чтобы пользователь иметь возможность добавлять повторяющиеся элементы без необходимости сначала заполнять остальную часть формы. Поэтому, щелкнув второй тип submit, я хочу BYPASS validate();

HTML:

<form method="post" action="" id="ApplicationForm" name="ApplicationForm"> 

    <input id="job1" name="job1" class="required"/> 
    <input type="submit" name="delete_job1" value="Delete" class="delete" /> 

    <input id="job2" name="job2" class="required"/> 
    <input type="submit" name="delete_job2" value="Delete" class="delete" /> 

    <input type="submit" name="add_job" value="Add Job" class="add" /> 

    <input type="submit" name="ApplicationForm" value="Save Details" class="submit" /> 

</form> 

Я попробовал перехватчик для истинной кнопку отправки ниже, но это только останавливает проверить все togerther;

$(document).ready(function() 
{ 
    var submitPress 

    $(".submit").click(function() 
    { 
     submitPress = true; 
    }); 

    if (submitPress) 
    { 
     $('form#ApplicationForm').validate(); 
    } 
}); 

Я думаю, это потому, что validate(); слушатели настроены на начальную загрузку страницы, а не после отправки ...

Есть ли правило или установка для validate(); Мне не хватает, что я мог бы использовать, или даже хороший взлом с добрым старым JS.

Muchos gratias, который когда-либо может помочь, я нахожусь на своем конце.

С уважением, Рабочая Late, РАЗ Разработчик

ответ

23

http://docs.jquery.com/Plugins/Validation/Reference#Skipping_validation_on_submit

в основном, добавьте class="cancel" к кнопки отправки, которые вы не хотите, чтобы вызвать проверку.

<input type="submit" value="I Validate" /> 
<input type="submit" class="cancel" value="I skip Validation" /> 
+0

Приветствия Криса, это Барсук ... Не знаю, как я пропустил это. Думаю, я вошел в сумерковую зону вчера вечером и должен был вернуться домой. –

+0

sweeeet ... используя jquery мобильный, мысль это может быть данные- * атрибут. спасибо @rambo coder – sonjz

+0

С 2015 года класс = «отменить» теперь устарел. Теперь вы добавляете атрибут 'formnovalidate'. Нажмите ссылку, чтобы просмотреть последнюю документацию. – Ben

0

ее не работаю, так как идентификатор вы обеспечили ваш входной элемент, который стал меняться, как этот submit_1_btnSubmit, после загрузки страницы

так, чтобы избавиться от этой ошибки вы можете использовать ClientIDMode="Static"

(if you are working on asp.net) 
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" CssClass="Submit" ClientIDMode="Static" /> 

else 

you may access `clientIDmode` property on button control dynamically.