#javascript #php #jquery #html
#javascript #php #jquery #HTML
Вопрос:
Я хочу проверку с использованием значения, разделенного запятыми.
Здесь, на изображении, есть два поля: одно — «Цена салона» (значение : 10,10,10,10
), а другое — «Цена предложения салона» (значение : 11,11,11,11
).
Первое значение должно быть меньше второго.
Значение цены салона > = Значение цены предложения салона проверки на основе первого значения цены салона и цены предложения салона, одинаковой для второго, 3-го … n
var size_weight_lengh = size_weight.split(',');
var saloon_price = validator.getFieldElements('saloon_price').val(),
saloon_price_lengh = saloon_price.split(',');
var saloon_offer = validator.getFieldElements('saloon_offer_price').val(),
saloon_offer_lengh = saloon_offer.split(',');
if(saloon_price_lengh.length === saloon_offer_lengh.length) {
for(var i=0; i<= saloon_price_lengh.length-1; i ) {
if((saloon_price_lengh[i]) >= (saloon_offer_lengh[i])) {
return true;
}
return false;
}
}
Комментарии:
1. разделите ваше значение с помощью запятой (,), а затем сравните его в цикле.
2. можете ли вы поделиться кодом, например
3. size_weight_lengh = size_weight.split(‘,’); var saloon_price = validator.getFieldElements(‘saloon_price’).val(), saloon_price_lengh = saloon_price.split(‘,’); var saloon_offer = validator.getFieldElements(‘saloon_offer_price’).val(), saloon_offer_lengh = saloon_offer.split(‘,’); если(saloon_price_lengh. длина === saloon_offer_lengh. длина){ for(var i=0; i<= saloon_price_lengh. длина-1; i ){ if((saloon_price_lengh[i]) >= (saloon_offer_lengh[i])){ возвращает true; } возвращает false; } }
4. делаю так, но не получается
Ответ №1:
Разделите строку, а затем выполните сравнение значений двух элементов массива. Он использует «break» и «continue», чтобы уменьшить ненужные итерации по циклу. Вот полный сценарий. Соответствующим образом настройте функциональность.
$(document).ready(function () {
var value = ComparePrice();
alert(value);
});
function ComparePrice() {
var salonOfferPrice = $('#saloon_offer_price').val();
var salonPrice = $('#saloon_price').val();
var offerPriceArray = salonOfferPrice.split(",");
var priceArray = salonPrice.split(",");
var isValid = false;
if (offerPriceArray.length == priceArray.length) {
for (var i = 0; i < offerPriceArray.length; i ) {
for (var j = 0; j < priceArray.length; j ) {
if (i == j) {
if (offerPriceArray[i] < priceArray[j]) {
alert(offerPriceArray[i] "is less than" priceArray[j]);
isValid = true;
}
else {
alert(offerPriceArray[i] "is greater than or equal" priceArray[j]);
return false;
}
}
else {
continue;
}
}
}
}
return isValid;
}
Комментарии:
1. Отредактировал ответ в соответствии с отредактированным вопросом. Проверьте это.
Ответ №2:
Вы должны выполнять сравнение по значению.
var sp="10,20,30"; //get your field values here
var sop="5,10,15";
var spArr = sp.split(','); //split the values using comma
var sopArr = sop.split(',');
if(spArr.length === sopArr.length){
for(var i in spArr){
if(parseInt(spArr[i])<parseInt(sopArr[i])){
//throw some error or your logic goes here.
}
}
}
Просто убедитесь, что вы принимаете только цифры и запятую, используя некоторую проверку регулярных выражений в текстовом поле.