使用jQuery将内容从一个文本字段复制到另一个文本字段
试图将一些用户输入从一个HTML使用jQuery将内容从一个文本字段复制到另一个文本字段,jquery,html,forms,copy,Jquery,Html,Forms,Copy,试图将一些用户输入从一个HTMLinput复制到另一个HTML,我的控制台显示错误:uncaughttypeerror:Object#没有方法“val” 不确定问题出在哪里。。我认为文本输入确实有一个值?谢谢你的帮助 HTML: $('.answer').bind('keypress',function(){ var name=$(this.attr('id'), feild=$('#'+name+'f')[0]; feild.val($(this.val()); }); 编辑:正如@zerk
input
复制到另一个HTML,我的控制台显示错误:uncaughttypeerror:Object#没有方法“val”
不确定问题出在哪里。。我认为文本输入确实有一个值?谢谢你的帮助
HTML:
$('.answer').bind('keypress',function(){
var name=$(this.attr('id'),
feild=$('#'+name+'f')[0];
feild.val($(this.val());
});
编辑:正如@zerkms所指出的,[0]在任何情况下都是不需要的,但由于有时将数组索引与选择器一起使用是有用的,因此我将把它留在这里,以便您理解错误
更改:
field.val($(this).val());
到
说明:
$('#'+name+'f')
获取与选择器匹配的HTML元素数组。由于您将[0]
放入数组,因此将获取数组中的第一个HTML元素。由于field
是一个HTML元素,而不是jQuery对象,因此需要使用$(field)
将其转换为jQuery对象,以便在其上使用jQuery方法。编辑:正如@zerkms指出的那样,[0]无论如何都不需要,但由于有时使用带有选择器的数组索引很有用,我把这个留在这里,这样你就能明白错误了
更改:
field.val($(this).val());
到
说明:
$('#'+name+'f')
获取与选择器匹配的HTML元素数组。由于您将[0]
放入数组,因此将获取数组中的第一个HTML元素。由于field
是一个HTML元素,而不是jQuery对象,因此需要使用$(field)
将其转换为jQuery对象,以便在其上使用jQuery方法。第一件事——需要添加两个额外的点来真正完成此处的解决方案:
- onkeypress事件只应在字符键按下和释放(或反复保持)时触发
- 对于按下/释放的任何键,应触发onkeydown/onkeyup事件
第一件事——要真正完成此解决方案,需要添加两个额外的要点:
- onkeypress事件只应在字符键按下和释放(或反复保持)时触发
- 对于按下/释放的任何键,应触发onkeydown/onkeyup事件
只要删除
[0]
我就是个白痴。你们应该回答,这样我就可以接受它接受waitinforatrain的一个:-)也将feild改为field。o_Ojust remove[0]
我是个白痴。你们应该回答,这样我就可以接受它接受waitinforatrain的一个:-)也将feild改为field。o_O1。获取jquery对象2。从jquery对象3获取DOM对象。将DOM对象转换回jquery对象。没有任何意义。获取jquery对象2。从jquery对象3获取DOM对象。将DOM对象转换回jquery对象。没有任何意义
$(field).val($(this).val());
$('.answer').bind('keyup', function(e){
$('#' + $(this).attr('id') + 'f').val($(this).val());
});
$('.answer').keypress(function(e){
var newChar = String.fromCharCode(event.which);
var oldVal = $(this).val();
var cursorPos = $(this).caret().start;
var newVal = oldVal.slice(0, cursorPos) + newChar + oldVal.slice(cursorPos);
$('#' + $(this).attr('id') + 'f').val(newVal);
});