Javascript jquery输入值未定义

Javascript jquery输入值未定义,javascript,jquery,Javascript,Jquery,Javascript值和jQueryval()在keyup事件上返回未定义的值。可变货币是一种select输入,我希望在convertCash函数中输入该值。 我的代码示例如下: var currenciesData = <?php echo $this->currencies;?>; var currency = $('#depositCurrencySelect'); var deposit = $('#depositCashEndInput');

Javascript值和jQuery
val()
keyup
事件上返回未定义的值。可变货币是一种
select
输入,我希望在
convertCash
函数中输入该值。
我的代码示例如下:

    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;
        }
   };
var currencesdata=;
var货币=$(“#存款货币选择”);
var存款=$(“#存款现金输入”);
var cashInput=$(“#存款现金输入”);
货币兑换(函数(){
兑换现金(这是存款);
}); 
//有一个事件
cashInput.keyup(函数(){
兑换现金(货币、存款);
});
var CONVERTCHASH=函数(元素,元素更改){
控制台日志(元素);
console.log('value'+元素.value);
开关(元素值){
“美元”一案:
elementToChange.val(parseFloat(cashInput.val()/currenciesData['USD'],8).toFixed(8));
打破
“欧元”案:
elementToChange.val(parseFloat(cashInput.val()/currenciesData['EUR'],8).toFixed(8));
打破
案例“英镑”:
elementToChange.val(parseFloat(cashInput.val()/currenciesData['GBP'],8).toFixed(8));
打破
案例“BTC”:
elementToChange.val(parseFloat(cashInput.val());
打破
}
};

谢谢大家!

您要求的是
select
元素的
值。但您实际需要的是所选
选项
元素的值

所以使用

switch(element.options[element.selectedIndex].value)
而不是

switch(element.value)
请注意,option元素的值不一定与文本相同。如果您想要文本,只需使用

switch(element.options[element.selectedIndex].text)
使用jquery,您可以使用

switch(element.val())
或者,如果你需要文本

switch(element.find(":selected").text() )

您是否使用“element.val()”进行了测试?也许您应该使用
elementToChange.val()
上的
console.log
cashInput.val()
来查看您是否有什么东西可以创建JSFIDLE吗?您确定失败的是keyup事件而不是change事件吗?因为我不知道
是什么类型的元素#depositCurrencySelect
,但我认为
current.change
回调有一个bug,因为
是窗口对象,而不是元素作用域有问题。。我必须调用val(),因为变量currency是jquery选择器。谢谢大家抽出时间。