Zdravím,
mám problém mám form na kterém mám udělaný custom valider a mám problém že jakmile chci přidat další řádek spustí to validaci celého formu ale já chci aby když kliknu na tlačítko přidat produkt tak mi to nebude validovat a jakmile budu chtít odeslat form poté to bude validovat..
Došel jsem do fáze kdy do inputu který má přidat nový řádek se přidá atribut clicked="true"
$(".validate-form").submit(function(){
var check = true;
for(var i=0; i<input.length; i++) {
if(validate(input[i]) == false){
showValidate(input[i]);
check=false;
}
}
return check;
});
$(".validate-form input[type=submit]").click(function() {
$("input[type=submit]", $(this).parents(".validate-form ")).removeAttr("clicked");
$(this).attr("clicked", "true");
});
Možnost přidat produkt:
<input type="submit" name="multiplier[multiplier_creator]" value="Další produkt" formnovalidate="" data-nette-validation-scope="["multiplier"]" class="btn btn-form width-100 mb-xs">
Odeslání celého formu:
<button type="submit" onsubmit="return validateForm()" class="contact100-form-btn" name="_submit" value="">Nezávazně poptat</button>
Celý js který validuje form:
(function ($) {
"use strict";
/*==================================================================
[ Validate ]*/
var input = $('.validate-input .input100');
$(".validate-form").submit(function(){
var check = true;
for(var i=0; i<input.length; i++) {
if(validate(input[i]) == false){
showValidate(input[i]);
check=false;
}
}
return check;
});
$(".validate-form input[type=submit]").click(function() {
$("input[type=submit]", $(this).parents(".validate-form ")).removeAttr("clicked");
$(this).attr("clicked", "true");
});
$('.validate-form .input100').each(function(){
$(this).focus(function(){
hideValidate(this);
});
});
function validate (input) {
if($(input).attr('type') == 'email' || $(input).attr('name') == 'email') {
if($(input).val().trim().match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/) == null) {
return false;
}
}
else {
if($(input).val().trim() == ''){
return false;
}
}
}
function showValidate(input) {
var thisAlert = $(input).parent();
$(thisAlert).addClass('alert-validate');
}
function hideValidate(input) {
var thisAlert = $(input).parent();
$(thisAlert).removeClass('alert-validate');
}
})(jQuery);
Díky všem za pomoc nebo radu.