Jquery输入值没有正确显示
我有一些非常简单的事情来获得输入值。Jquery输入值没有正确显示
的代码看起来是这样的:
var $a = $('.custom-amount').val();
$('.custom-amount').on('change', function() {
alert($a)
})
而且我输入:
<div class='custom-amount'>
<input placeholder='Custom Amount' type='text-area'>
出于某种原因,我的警示是空的。有没有人看到最新的错误?
您的选择更改为$('.custom-amount input')
,并得到后的变化事件触发值,例如
$('.custom-amount input').on('change', function() {
var a = $(this).val();
alert(a);
});
现在,你想获得一个div
,这是行不通的价值。您需要获取输入的值。
编辑:此外,它看起来像你试图显示textarea
。尝试更换此...
<input placeholder='Custom Amount' type='text-area'>
有了这个...
<textarea placeholder='Custom Amount'></textarea>
这可能会帮助:
首先,您只能指定$a
以外的change
函数。如果你保持你的代码更好的排列,这将更加清晰(请参阅我对你的文章所做的修改)。这是做正确的方式:
$('.custom-amount').on('change', function() {
var $a = $('.custom-amount').val();
alert($a)
});
所有第二,类custom-amount
被分配到<div>
的<input>
元素代替。您必须选择<input>
元素,而不是<div>
。更改您的标记:
<div>
<input placeholder='Custom Amount' type='text-area' class='custom-amount'>
</div>
在变量名中有'$'是有效的。我的目标是对OP的代码进行微小的更改,这样我的更改会更容易理解。 (这也是为什么我决定放弃将第二个jQuery选择器更改为'$(this)'。) – 2014-10-29 18:09:59
因为你的div有没有价值。将您的代码更改为:
var $input = $('.custom-amount input');
$input.on('change', function() {
var $a = $input.val();
alert($a)
})
@Kypros我可以在变量中添加'$',如果我想要的话,对我来说,更容易识别是包含“DOM对象”的变量或其他类型的值。至于'$ a',我把它留作作者写的。 – 2014-10-29 18:07:15
对于'$ input'来说,它看起来很好,但对于$ a而言,并不是很多,但我明白你的意思。 – Kypros 2014-10-29 18:15:04
问题很简单,您正在获取div元素的值。相反,您应该检索input元素的值,以便将'custom-amount'类添加到输入中。
此外,您还需要执行事件内部的val()方法才能更新值。
var $a = $('.custom-amount');
$('.custom-amount').on('change', function() {
alert($a.val());
});
哦。是的,那也是。接得好;我会更新我自己的答案。 – 2014-10-29 17:59:56
+1对其他人使用'this' – Kypros 2014-10-29 18:00:44
和-0.25用于复制/粘贴变量名称中的$符号。修正了它虽然:)虽然:) – Kypros 2014-10-29 18:02:15