2012-04-09 76 views
0

给你一个问题在那里的JavaScript大师。我正在创建一个由几个不同的文本输入字段组成的侧边栏工具。此工具的用途是编辑模板上的副本。我试图将输入的数据传递到onchange领域,但我遇到了将数据转储到我的js对象中的问题。这在某种程度上就是我心目中:用Javascript打印字段输入数据

$('myInputField').(function(){ 
     $(this).onChange(){ 
      // write to variable X 
} 
}); 

基本上我想有我输入我打字进行现场模仿,然后我可以解析这些变化,我的数据库。

+0

'变种X = $(本).VAL()'将填充与输入的值在x。 – 2012-04-09 16:58:09

回答

0

在输入字段上不会有简单的keyup事件就足够了吗?

的jQuery:

$('textarea').keyup(function() { 
    $('#foo').html($(this).val()); 
});​ 

HTML:

<textarea></textarea> 
<div id="foo"></div> 

jsFiddle example

+0

完美,每个人都提供了很好的例子,但我真的很喜欢使用.html和.val代替创建js变量。 – Swordfish0321 2012-04-09 18:01:51

1
$('#myInputField').(function(){ 
     $(this).onkeyup(){ 
      x = this.value; 
     } 
}); 

或更简洁:

$('#myInputField').onkeyup(){ 
    x = this.value; 
}); 
1

你只是在寻找这是在myInputField该事件处理程序中的价值?像这样的东西?:

$('myInputField').(function(){ 
    $(this).onChange(){ 
     x = $(this).val(); 
    } 
}); 

我不记得了我的头顶,如果this已经是一个jQuery对象。如果是的话,这应该工作,也许跳过开销一点点:

x = this.val(); 

此外,你可以明确地引用场与正常jQuery选择,如果this是曾经与不同的上下文覆盖,或者如果你还想参考其他领域等:

x = $('myInputField').val(); 
+1

'this'不是一个jQuery对象,这就是为什么人们使用'$(this)':)。但是你可以使用'var x = this.value'。不要忘记'var'关键字,否则你的变量将是全局的。 – 2012-04-09 17:52:45

+0

@FlorianMargaine:我想我假设'x'是在其他地方根据问题定义的。不过要添加好的信息! – David 2012-04-09 17:58:08

1

问题是,在IE上,onchange事件在INPUT元素上不起作用。因此,您必须使用onkeypressonblur事件,具体取决于您想要执行的操作。

JS方式:

document.getElementById('myInputField').onblur = function() { 
    var x = this.value 
} 

jQuery的方式: