Добрый день. Вопрос по проверке полей форм. Есть страница на которой много форм. это аукцион, форма с возможностью сделать ставку.
Мне нужно что бы при заполенении текстового(цифра ставки) при нажатии сделать ставку эта форма проверялась и если все хорошо то оправлялась.
Проблема как провериь значение input именно отправляемой формы, с учетом что у всех форм одинакой class. И в чем ошибка в проверке полей. Конкретнее, вот код
Вот скрипт
<script type="text/javascript">
$(document).ready(function() {
$('.set-bid').submit(function() {
var start_price = $("#price").val(),
id = $("#idc").val(),
bid_id = "#bid"+id,
bid = $(bid_id).val(),
allFields = $([]).add(start_price).add(id).add(bid),
tips = $(".validateTips");
function checkLength(o,n,min,max) {
if ( o.val().length > max || o.val().length < min ) {
alert('Ставка не принята! Количество символов должно быть больше 1 и меньше 10');
return false;
} else {
return true;
}
}
function checkRegexp(o,regexp,n) {
if ( !( regexp.test( o.val() ) ) ) {
alert('Ставка не принята! Ваша ставка должна быть числом.');
return false;
} else {
return false;
}
}
function checkStratPrice(start,now) {
if ( start>now ) {
alert('Ставка не принята! Ваша ставка должна быть больше или равна стартовой.' );
return false;
} else {
return true;
}
}
var bValid = true;
bValid = checkRegexp(bid,/^([0-9_])+$/i,"");
bValid = bValid && checkStratPrice(start_price,bid);
bValid = bValid && checkLength(bid,"",1,10);
if (!bValid) {
return false;
}
});
});
</script>
Вот сам код форм
<form action="/auction.php"
method="GET" class="set-bid" >
<input type="hidden" id="cart" name="cart" value="auction" />
<input type="hidden" id="idc" name="idc" value="1" />
<input type="hidden" id="price" name="price" value="50" />
<input type="text" size="4" name="bid" id="bid" />
<div class="clear"></div>
<input type="image" src="/i/but_auct_bid.png" /><br><br>
<b><a href="/auction/now/1/">купить сейчас 150</a></b><br>
</form>
<form action="/auction.php"
method="GET" class="set-bid" >
<input type="hidden" id="cart" name="cart" value="auction" />
<input type="hidden" id="idc" name="idc" value="2" />
<input type="hidden" id="price" name="price" value="20" />
<input type="text" size="4" name="bid" id="bid" />
<div class="clear"></div>
<input type="image" src="/i/but_auct_bid.png" /><br><br>
<b><a href="/auction/now/<%ID%>/">купить сейчас 100</a></b><br>
</form>
Проблемы
1. При более 1-ой формы берет значение input-ов из ближайшей. Это понятно. поэтому мне нужно брать из формы из той которая отправляется или той где был нажата кнопка ставка. Можно ли такое?
2. Не происходит проверка на ввод только цифр. Функция checkRegexp должна сравнивать число с рег выражением, а я даже в функцию не вхожу .
3. Не происходит проверка на длину вводимой ставки функцией checkLength.
4. Ввожу ставку больше 100 пишет что ставка должна быть больше стартовой, проверяю через alert вывожу два сравнимых значия все верно 100>50 . А ошибку выдает. В общем намучался. Хелп
Jquery-очень класная штука. но иногда так "выводит")
В чем проблемы помогите товарищи!(