$. Fn.val только даст вам значение первого элемента в коллекции.
http://api.jquery.com/val/
Описание: Получить текущее значение первого элемента в наборе соответствующих элементов.
Поскольку у вас есть несколько элементов с классом "rrp". Когда вы звоните
$('.rrp').val()
Вы получите значение только для первого элемента, в вашем случае products [1] [rrp].
Если вы хотите проверить каждый элемент с этим классом, вы должны пройтись по каждой коллекции и проверить значения по отдельности.
var rrpValid = true;
$('.rrp').each(function(){
if ($(this).val() == '') {
rrpValid = false;
$(".error.hide").text("Please fill in the product information").removeClass('hide');
}
});
// check to see if there are any false values for rrp, sale-price, etc,
// and return false if there are
UPDATE
Еще лучше было бы
var validValues = true;
$('.rrp,.sale-price,.beg-inv,.end-inv,.sold,.sampled').each(function() {
if ($(this).val() == '') {
validValues = false;
return false; // break loop
}
});
if (!validValues) {
$(".error.hide").text("Please fill in the product information").removeClass('hide');
return false;
}