Помогите в сравнении со значениями массива в JavaScript - PullRequest
0 голосов
/ 22 марта 2011

Я разработал этот код с помощью вас, ребята, здесь на stackoverflow. Я добавил к нему дополнительную часть, где он сравнивает два числа из двух разных массивов, в данном случае offhire1 и pro2. Проблема в моем коде, где у меня есть:

(offhire1[i].value > pro2[i].value)

Это позволяет мне продолжать, только если числа совпадают, т.е. 100 = 100. Но то, что я ищу, - это определение любых чисел, которые превышают значение только 120> 100. Я проверил, передаются ли значения, и они есть. В чем моя ошибка, может кто-нибудь разоблачить.

function validateoffhire(form) {
  var num1 = document.getElementById('num1');
  var test2Regex = /^[0-9 ]+(([\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;


  var accumulator = 0;
  var num2 = num1.value;
  var i=0;
  var offhire1 = [];
  var pro2 =[];  
  for(var i = 0; i < num2; i++) {
    offhire1[i] = document.getElementById('offhire1' + i);
    pro2[i] = document.getElementById('pro2' + i);
    var offhire2 = offhire1[i].value;
    // var pro3 = pro2[i].value; 



    if(!offhire2.match(test2Regex)){
      inlineMsg('offhire1' + i,'This needs to be an integer',10);
      return false;
    }
    else if (offhire1[i].value > pro2[i].value) {
      alert("You entered: " + pro2[i].value)

      inlineMsg('offhire1' + i,'You have off hired to many items',10);
      return false;
    }   
    else{
      accumulator += parseInt(offhire2);
    }
  }
  if(accumulator <= 0){
    inlineMsg('num1' ,'You have not off Hired any items',10);
    return false;
  }


  return true;
} 

1 Ответ

1 голос
/ 22 марта 2011

Я не совсем уверен, что следую за тобой. Если числа совпадают, оператор не будет совпадать.

Одной из проблем в вашем коде является то, что вы сравниваете строки, а не числа. Вы можете изменить его на:

(parseInt(offhire1[i].value) > parseInt(pro2[i].value))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...