2013-12-10 1 views
2

У меня есть два текстовых поля ImageWidth и ImageHeight ... я хочу взять входные данные из них, добавить текущую позицию мыши poointer, а затем сделать некоторые вещи:Целые добавляющие как строки в Javascript

x = e.pageX - canvas.offsetLeft; 
y = e.pageY - canvas.offsetTop; 
var wWidth = document.getElementById('imageWidth').value; 
var wHeight = document.getElementById('imageHeight').value; 
var b = x + wWidth; 
alert(b); 
if(x+wWidth < 800 && y+wHeight < 1560) 
{ 
//some work here 
} 

так что если пользователь вводит 400 в ширину и х возвращает 151 ... значение b будет 151400 ... тогда как я хочу, чтобы это было 551, чтобы цикл работал правильно ...

+1

Посмотрите на функцию ParseInt в JavaScript. – tjg184

+0

http://stackoverflow.com/questions/1133770/how-do-i-convert-a-string-into-an-integer-in-javascript – tjg184

+1

'.value' возвращает строку. См. Связанный дубликат о том, как преобразовать его в целое число – Jamiec

ответ

0

Javascript - это язык с неявной типизацией. Это означает, что вы должны сказать ему, что такое вещи, когда вы хотите заниматься математикой. Ваш код просто подсказывает, что он объединяет строки, следовательно, результат, который вы видите.

Попробуйте это:

x = e.pageX - canvas.offsetLeft; 
y = e.pageY - canvas.offsetTop; 
var wWidth = document.getElementById('imageWidth').value; 
var wHeight = document.getElementById('imageHeight').value; 
var b = parseInt(x, 10) + parseInt(wWidth, 10); 
alert(b); 
if(x+wWidth < 800 && y+wHeight < 1560) 
{ 
//some work here 
} 
2

Это должно работать:

x = e.pageX - canvas.offsetLeft; 
y = e.pageY - canvas.offsetTop; 
var wWidth = document.getElementById('imageWidth').value; 
var wHeight = document.getElementById('imageHeight').value; 
var x1 = parseInt(x, 10) + parseInt(wWidth, 10); 
var y1 = parseInt(y, 10) + parseInt(wHeight, 10); 
if(x1 < 800 && y1 < 1560) 
{ 
    //some work here 
}