2015-11-13 6 views
2

Значение Javascript и jQuery val() Возврат undefined на keyup событие. Переменная валюта - это вход select, который я хочу получить в функции convertCash.
Мой пример кода ниже:jquery входное значение undefined

var currenciesData = <?php echo $this->currencies;?>; 
    var currency = $('#depositCurrencySelect'); 
    var deposit = $('#depositCashEndInput'); 
    var cashInput = $('#depositCashInput'); 

    currency.change(function() { 
     convertCash(this, deposit); 
    }); 
    //There is the event 
    cashInput.keyup(function() { 
     convertCash(currency, deposit); 
    }); 

    var convertCash = function(element, elementToChange) { 
     console.log(element); 
     console.log('value ' + element.value); 
     switch(element.value) { 
      case 'USD': 
       elementToChange.val(parseFloat(cashInput.val()/currenciesData['USD'], 8).toFixed(8)); 
       break; 
      case 'EUR': 
       elementToChange.val(parseFloat(cashInput.val()/currenciesData['EUR'], 8).toFixed(8)); 
       break; 
      case 'GBP': 
       elementToChange.val(parseFloat(cashInput.val()/currenciesData['GBP'], 8).toFixed(8)); 
       break; 
      case 'BTC': 
       elementToChange.val(parseFloat(cashInput.val())); 
       break; 
     } 
    }; 

Спасибо!

+0

вы проверить с «element.val() "? – azad

+0

Возможно, вы должны использовать 'console.log' в' elementToChange.val() 'и' cashInput.val() ', чтобы увидеть, есть ли у вас что-то – Anonymous0day

+0

Можете ли вы создать jsfiddle? – OdaYukimura

ответ

0

Вы запрашиваете value элемента select. Но то, что вы на самом деле хотите, это значение выбранного элемента option.

Так используйте

switch(element.options[element.selectedIndex].value) 

вместо

switch(element.value) 

Обратите внимание, что значение элемента опции не обязательно совпадает с текстом. Если вы хотите, чтобы текст, просто используйте

switch(element.options[element.selectedIndex].text) 

С JQuery, вы можете использовать

switch(element.val()) 

Или, если вам нужен текст,

switch(element.find(":selected").text()) 
Смежные вопросы