Jquery输入值未正确显示

时间:2014-10-29 17:56:07

标签: javascript jquery html

我有一些非常简单的东西可以获得输入值。

代码如下所示:

var $a = $('.custom-amount').val();
$('.custom-amount').on('change', function() {
    alert($a)
})

我的意见:

<div class='custom-amount'>
  <input placeholder='Custom Amount' type='text-area'>

出于某种原因,我的提醒是空的。有谁看到什么出错了?

4 个答案:

答案 0 :(得分:2)

将您的选择器更改为$('.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>

这可能有所帮助:

http://jsfiddle.net/d648wxry/

答案 1 :(得分:2)

问题很简单,你得到的是div元素的值。相反,你应该检索输入元素的值,以便自定义数量&#39;必须将类添加到输入中。

此外,您需要在事件中执行val()方法以更新值。

var $a = $('.custom-amount');

$('.custom-amount').on('change', function() {
  alert($a.val());
});

答案 2 :(得分:1)

因为你的div没有价值。将您的代码更改为:

 var $input = $('.custom-amount input');
 $input.on('change', function() {
    var $a = $input.val();
    alert($a)
 })

答案 3 :(得分:0)

首先,您只能在$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>