#javascript #php #jquery
#javascript #php #jquery
Вопрос:
допустим, у меня есть форма для Quantity
ввода с помощью class txt-qty
, и это будет цикл, основанный на данных из базы данных.
Чем я хочу, пытаясь проверить значение количества, не должно быть 0
, но если одно из значений больше, чем 0
оно будет true
это мой код, который я пробовал :
<script type="text/javascript">
$(document).ready(function(){
var input_qty = false;
$('#checkout').submit(function(e){
e.preventDefault();
var qty = $('.txt-qty').each(function(){
$(this).val();
});
if(qty > 0){
input_qty = true;
}else{
input_qty = false;
}
if(input_qty == false){
alert('You must input one of quantity from the menu list');
}else{
this.submit();
}
});
});
</script>
в моем скрипте, если я предупреждаю qty
, это будет возврат [object],[object]
.
ребята, вы можете мне помочь, как проверить, что одно из значений количества не должно быть 0
?
Комментарии:
1. Непонятно, о чем вы спрашиваете. Вы хотите сказать, что хотя бы одно из
.txt-qty
полей должно иметь значение> 0?
Ответ №1:
Если цель состоит в том, чтобы проверить, что хотя бы одно из .txt-qty
полей имеет значение> 0, то вы можете использовать get()
для получения истинного массива из вашего объекта jQuery, а затем Array#some
посмотреть, равно ли значение какого-либо поля> 0:
$(document).ready(function() {
$('#checkout').submit(function(e) {
e.preventDefault();
if (!$('.txt-qty').get().some(function(e) { return $(e).val() > 0; })) {
// Gets array ---^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// | Checks for at least one with a value > 0
alert('You must input one of quantity from the menu list');
} else {
this.submit();
}
});
});
Это основано на неявном преобразовании строкового значения в число; вы можете рассмотреть возможность использования parseInt
вместо этого.
Ответ №2:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#checkout').click(function(e){
e.preventDefault();
var qty =[];
$('.txt-qty').each(function(){
if(parseInt($(this).val(),10) <= 0 )
{
qty.push($(this).val());
}
});
if(qty.length > 0){ // check this
input_qty = true;
}else{
input_qty = false;
}
if(input_qty == true){
alert('You must input one of quantity from the menu list');
}else{
this.submit();
}
});
});
</script>
</head>
<body>
<input type='text' class='txt-qty' />
<input type='text' class='txt-qty' />
<input type='text' class='txt-qty' />
<input type='text' class='txt-qty' />
<input type='text' class='txt-qty' />
<input type='text' class='txt-qty' />
<input type='submit' id='checkout'/>
</body>
</body>
</html>