JQuery中没有方法'val'

时间:2012-10-25 05:06:50

标签: javascript jquery forms

我有一个HTML表单

<div class="field"> 
  <label for="num1">Number 1</label> 
  <input id="num1" type="text" /> 
</div> 
<div class="field"> 
  <label for="num2">Number 2</label> 
  <input id="num2" type="text" /> 
</div> 

当“数字1”改变时,我想改变“数字2”以匹配它。所以这个JQuery代码:

$('#num1').change(function() {
  var one = this.val();
  $('#num2').val(one);
});

但它说:

Uncaught TypeError: Object #<HTMLInputElement> has no method 'val'

就行了

var one = this.val()

我做错了什么?

3 个答案:

答案 0 :(得分:12)

.val()仅在jQuery对象上定义。 this返回没有此属性的DOM对象。

修复您的代码:

  1. 使用$(this).val()
  2. 使用this.value

答案 1 :(得分:4)

this是DOM对象而不是jquery对象。您可以使用this.value$(this).val()

$('#num1').change(function() {
  var one = $(this).val();
 $('#num2').val(one);
 });

答案 2 :(得分:1)

使用:$(this).val();代替this.val();

DEMO:JSFIDDLE