1

我有一个 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()

我究竟做错了什么?

4

3 回答 3

12

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

要修复您的代码:

  1. 使用$(this).val(), 或
  2. 采用this.value
于 2012-10-25T05:08:23.923 回答
4

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

$('#num1').change(function() {
  var one = $(this).val();
 $('#num2').val(one);
 });
于 2012-10-25T05:08:20.627 回答
1

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

演示:JSFIDDLE

于 2012-10-25T05:11:56.473 回答