Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не назначается eventlistener (https://javascript.ru/forum/events/45850-ne-naznachaetsya-eventlistener.html)

sl1m 18.03.2014 16:57

Не назначается eventlistener
 
что может быть не так?
http://jsfiddle.net/8qbaL/

рони 18.03.2014 17:38

sl1m,
со строки 5 закончились переменные - запятые поменять на точку с запятой строки 5 - 11.
строка 60 нет никакого value у span и значение функции никогда неизменится параметр input

sl1m 18.03.2014 18:08

так там не просто input, а input.value, eventlistener появился, но не работает функция.

З.ы.: это тестовые задания на повышения, не могли бы помочь, сам то я backend developer.

рони 18.03.2014 18:10

Цитата:

Сообщение от sl1m
так там не просто input, а input.value

это то и недаёт сменится параметру!!! как при загрузке получили значение больше оно у вас не сменится

рони 18.03.2014 18:11

sl1m,
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title> - jsFiddle demo</title>

  <script type='text/javascript' src='/js/lib/dummy.js'></script>



  <link rel="stylesheet" type="text/css" href="/css/result-light.css">

  <style type='text/css'>

  </style>



<script type='text/javascript'>//<![CDATA[

window.onload = function(){
var input = document.getElementById("int"),
    button = document.getElementById("success"),
    result = document.getElementById("result"),
    assocArr = [];
    assocArr[0] = new Array("", "один", "два", "три", "четыри", "пять", "шесть", "семь", "восемь", "девять");
    assocArr["d"] = new Array("десять", "одинадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шеснадцать", "семнадцать", "восемнадцать", "девятнадцать");
    assocArr[1] = new Array("", "", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто");
    assocArr[2] = new Array("", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот", "девятьсот");
    assocArr["s"] = new Array("", "одна", "две");
    assocArr[3] = new Array("тысяч", "тысяча", "тысячи", "тысячи", "тысячи", "тысяч", "тысяч", "тысяч", "тысяч", "тысяч", "");

function numToWord(number) {
    var resp = "",
        numArr = [],
        flag = true;

    if (isNaN(number) || number < 1 || number > 9999) {
        return "Invalid input!";
    }

    for (; number != 0; number = Math.floor(number / 10)) {
        numArr.push(number % 10);
    }

    for (var i = numArr.length - 1; i >= 0 ; i--) {
        if (flag) {
            if (numArr[i] == 1 && i == 1 || numArr[i] == 1 && i == 4) {
                flag = false;
            } else {
                resp += digitToWord(i, numArr[i], 0);
            }
        } else {
            resp += digitToWord("d", numArr[i], i);
            flag = true;
        }
    }
    return resp.trim();
}

function digitToWord(digit, offset, char) {
    var resp = "";
    switch (digit) {
        case 3:
            resp += (offset == 1 || offset == 2 ? assocArr["s"][offset] : assocArr[0][offset]) + " ";
            break;
        case 4:
            digit = 1;
            break;
        case "d":
            resp += assocArr[digit][offset] + " ";
            digit = char;
            offset = 0;
            break;
    }
    return resp + assocArr[digit][offset] + " ";
}

function getResult(){
   result.innerHTML = numToWord(input.value);
}

button.addEventListener("click", getResult, false);
}

</script>


</head>
<body>
  <label for="int"> Insert number </label>
    <input type="text" name="int" id="int"/>
    <br/>
    <button type="submit" id="success"> Go </button>
    <br/>
    <span id="result"></span>

</body>


</html>


Часовой пояс GMT +3, время: 02:22.