У меня есть html как,
<form id="create_campaign_form">
<input type="text" name="campaign_name" id="campaign_name" >
</form>
<button id="validate_now" type="button" >OK</button>
И у меня есть jquery с validate.js вроде,
$.fn.validate_campaign=function(options){
$("#create_campaign_form").validate({
rules: {
campaign_name : "required",
},
messages:{
campaign_name : "Please enter Campaign name",
},
submitHandler: function(form) {
alert(1);
return true;
}
});
$('#validate_now').click(function(){
alert($('#create_campaign_form').valid());
});
}
$(document).ready(function(){
$(this).validate_campaign(); //Invoke on document ready
});
моя проблема заключается в том, что когда я ввожу значение в текстовое поле и нажимаю alert($('#create_campaign_form').valid());
буттона alert($('#create_campaign_form').valid());
alwaise возвращает false
и не вводит submitHandler
проверьте этот FIDDLE
Вам необходимо отправить свою форму. либо ваша кнопка отправки должна находиться внутри вашей формы, либо вы должны отправить форму отправки вручную. Следующие
$('#validate_now').click(function(){
$('#create_campaign_form').submit();
});
вводит ваш обработчик отправки и оповещения 1, если форма действительна.
Вам нужно создать кнопку отправки в форме, подобной
<form id="create_campaign_form">
<input type="text" name="campaign_name" id="campaign_name" />
<input type="submit" class="button" value="Submit" id="validate_now"/>
</form>
Демо: скрипка
или вручную вызовите метод отправки нажатием кнопки
<form id="create_campaign_form">
<input type="text" name="campaign_name" id="campaign_name" />
</form>
<input type="button" class="button" value="Submit" id="validate_now"/>
тогда
$('#validate_now').click(function () {
$("#create_campaign_form").submit()
});
Демо: скрипка
поместите свою кнопку html внутри тега формы
<form id="create_campaign_form">
<input type="text" name="campaign_name" id="campaign_name" >
<button id="validate_now" >OK</button>
</form>
По умолчанию кнопка с любым типом отправляется в html5.