Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   передача переменной (https://javascript.ru/forum/dom-window/68696-peredacha-peremennojj.html)

yintar 03.05.2017 11:56

передача переменной
 
Всем привет!
При при заполнении текстового поля мне необходимо сохранить это значение в переменную (length), чтобы потом передать его в функцию для дальнейших вычислений.....
<input type="text" name="length" id="length" value="">

$('document').ready(function() {
      var lenght;

 calculationPriceOnLine(width,lenght,priceKvMetr)
  console.log(lenght ); но здесь получаю undefined

   $('#length').on('keyup', function(){//здесь получаю значение и записываю в переменную lenght.
        var lenght = $(this).val();
         // console.log(lenght); выводит значение переменной
    });
   
     function calculationPriceOnLine(width,lenght,priceKvMetr){ в этой функции и нужна переменная lenght .......
        console.log(lenght ); но здесь тоже получаю undefined
         if(width > 0 && lenght > 0){
            return width * lenght * priceKvMetr;
        }
    }
 });

Вопрос как получить переменную lenght из обработчика и передать ее в функцию и вообще... как правильно реализовать такую логику, что я делаю не так.
Спасибо

ksa 03.05.2017 13:30

Цитата:

Сообщение от yintar
как получить переменную lenght из обработчика

"Уровнять" область видимости переменной и нужной "точки отсчета"...
Можно еще сделать переменную глобальной...
Можно просто читать значение из поля в нужный момент...

yintar 03.05.2017 14:28

Спасибо......но можете в коде привести хотя б один пример

Diphenyl Oxalate 03.05.2017 14:43

yintar,
не проще ли просто вместо length вызывать $("#length").val() ?

ksa 03.05.2017 14:51

Цитата:

Сообщение от yintar
но можете в коде привести хотя б один пример

Смогу! :dance:

var lenght;
$('document').ready(function() {
 calculationPriceOnLine(width,lenght,priceKvMetr)
  console.log(lenght ); но здесь получаю undefined
   $('#length').on('keyup', function(){//здесь получаю значение и записываю в переменную lenght.
        lenght = $(this).val();
         // console.log(lenght); выводит значение переменной
    });
   
     function calculationPriceOnLine(width,lenght,priceKvMetr){ //в этой функции и нужна переменная lenght .......
        console.log(lenght ); но здесь тоже получаю undefined
         if(width > 0 && lenght > 0){
            return width * lenght * priceKvMetr;
        }
    }
 });

ksa 03.05.2017 14:52

Цитата:

Сообщение от Diphenyl Oxalate
не проще ли просто вместо length вызывать $("#length").val() ?

Автор не ищет простых решений. :stop:

yintar 03.05.2017 15:06

ksa , вы написали 3 варианта как это можно сделать.....вы что думаете что я перед тем как спрашивать сам ничего не пробовал.........ошибаетесь.... росто не получается ,поэтому и спрашиваю.....я вас просил пример кода, а вы мне ответили моим же кодом......зачем!!!!!!!!!!!! на форумах обычно помогают......для того то они и нужны

ksa 03.05.2017 15:52

Цитата:

Сообщение от yintar
я вас просил пример кода, а вы мне ответили моим же кодом.

Твоя проблема в том, что ты даже различий в тех кодах не видишь... :(

Цитата:

Сообщение от yintar
на форумах обычно помогают......для того то они и нужны

У тебя какое-то однобокое и потребительское отношение к форумам вообще и к этому в частности. :blink:

ksa 03.05.2017 15:55

Цитата:

Сообщение от yintar
вы что думаете что я перед тем как спрашивать сам ничего не пробовал.........ошибаетесь...

В 99.9% случаев хватает варианта, который предложил Diphenyl Oxalate. Т.е. просто прочитать значение инпута в нужный момент времени.

И что-то мне подсказывает, что ты просто роешь подземный ход на чердак. ;)

yintar 03.05.2017 21:11

не проще ли просто вместо length вызывать $("#length").val() ?
Не а , не проще, потому, что мне надо получать это значение именно когда пользователь ввел туда данные(по событию)...в том то и проблема что я не понимаю почему ,когда я записываю значение в переменную при событии, то в другом месте(вне этого события) эта переменная не видна...........
p.s. Я прочитал при области видимости и пробовал сделать по-разному, в том числе и глобально ,но все равно не работает.......


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