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