javascript jquery preveri polje pred serialize()
3 naročniki
3 naročniki
ve kdo napako v naslednji kodi
$('form').find('input').each(function (elem) {
if ($(elem).val().length == 0) {
alert('Polje ni izpoljneno!\n');
$(elem).focus();
return false;
}
});
hvala
12 odgovorov
$('form').each(function() {
if ($(this).val().length == 0) {
alert('Polje '+$(this).attr('name')+' ni izpoljneno!\n');
$(this).focus();
return false;
}
});
.each() funkcija mora dobiti callback s paramerti: idx, element
torej:
$('form').find('input').each(function (idx, elem) {
if ($(elem).val().length == 0) {
alert('Polje ni izpoljneno!\n');
$(elem).focus();
return false;
}
});
Ali pa:
$('form').find('input').each(function () {
if ($(this).val().length == 0) {
alert('Polje ni izpoljneno!\n');
$(this).focus();
return false;
}
});
Ti si samo izbrisal .find('input') (to bi se sprehodilo po 'form'-ih in this bi referenciral na sam 'form') in parameter od callbacka... Torej k večjemu bi moral napisati $('form input')
se vedno pa tole namesto da bi opozorilo v formo vpise 20x tudi prazne vrednosti...
$("input:radio").attr("checked", false);
$('form').submit(function (event) {
event.preventDefault();
$('form').find('input').each(function (idx, elem) {
if ($(elem).val().length == 0) {
alert('Polje ni izpoljneno!\n');
$(elem).focus();
return false;
}
});
$('<img src="ajax-loader.gif" class="ajaxLoader"/>').insertAfter("form");
var str = $('form').serializeArray();
$.ajax({
type: "POST",
url: "/insert.php",
data: str,
success: function () {
window.location.reload();
}
});
SlimDeluxe:
Ti si samo izbrisal .find('input') (to bi se sprehodilo po 'form'-ih in this bi referenciral na sam 'form') in parameter od callbacka... Torej k večjemu bi moral napisati $('form input')
@SlimDeluxe: Sorry res je, površno spisal :D
@mpose7: Tebi pošlje v vsakem primeru, namesto alert nastavi spremenljivko ki jo kasneje preverjaš, če je nastavljena ne izvedeš AJAX klica.