我有一个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()
我做错了什么?
答案 0 :(得分:12)
.val()
仅在jQuery对象上定义。 this
返回没有此属性的DOM对象。
修复您的代码:
$(this).val()
或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