getElementByID не будет передавать значения в переменные

0

Javascript

function fn1(){
    var a = document.getElementById("xa").value;
    var b = document.getElementById("ya").value;
    var c = document.getElementById("xb").value;
    var d = document.getElementById("yb").value;

    fn2(a,b,c,d);
}

HTML

<div align="center"><b>Digital Differential Analyzer</b><br /><br />
    X0: <input type="text" id="xa"/>
    Y0: <input type="text" id="ya"/>
    XE: <input type="text" id="xb"/>
    YE: <input type="text" id="yb"/>
    <input id="button1" type="button" value="Submit" onclick="e.width = e.width;fn1();" /></div>

Если я введу function1 как только вызов функции2 с готовыми значениями (например, 0,0,300,300), он работает нормально, но когда я пытаюсь получить переменные с getElementById, ничего не работает, я пытался его модифицировать много, но все же результат, и он даже не отображается как ошибка

  • 4
    где определение fn2 ()? document.getElementById("xa").value возвращает строковое значение, готов ли ваш fn2 принимать строки?
  • 0
    спасибо, использовал parseInt и он решил это, по какой-то причине я думал, что значение вернет Int, несмотря на то, что это текстовое поле
Теги:

1 ответ

2
Лучший ответ

пытаться:

 fn2(+a,+b,+c,+d);

это преобразует входные значения из строки в int. ваша функция не работает, потому что вы передаете строковые значения функции. он добавляет 0 к переменной a, b, c, d соответственно и передает строку в int, т.е. 0 + a = a, но теперь 'a' является int. для большей точности попробуйте с parseFloat()

function fn1(){
 var a =parseFloat( document.getElementById("xa").value);
 var b =parseFloat( document.getElementById("ya").value);
 var c =parseFloat( document.getElementById("xb").value);
 var d =parseFloat( document.getElementById("yb").value);

  fn2(a,b,c,d); 

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню