试图在输入中附加字母到文本

我有一个使用disabled属性禁用的文本输入,但我在单击某个类时添加了输入。

在单击类I(.I)时,我在输入中的现有文本(如果有)中添加了一个字母I.

在单击类O(.O)时,我在输入中的现有文本(如果有)中添加了一个字母O.

但是当我点击课程时似乎没有发生任何事情。

这是我的代码:

$('.I').click(function(){ $('#code').text($('#code').text()+"I"); }); $('.O').click(function(){ $('#code').text($('#code').text()+"O"); }); 

这是一个JSFiddel复制问题: http : //jsfiddle.net/q3xBY/

要获取和设置input元素的值,您应该使用.val()而不是.text()

 $('.I').click(function(){ $('#code').val($('#code').val()+"I"); }); $('.O').click(function(){ $('#code').val($('#code').val()+"O"); }); 

而不是像每次点击硬编码,你可以为你的所有按钮提供相同的类:

   

然后你可以应用jQuery来实现你所描述的:

 $('.button').click(function(event) { var text = $(this).text(); $('input:text').val(function(index, val) { return val + text; }); }); 

更新了演示

正如John S所说 – 你将要使用.val()而不是.text() 。 如果你在一个页面上有多个这样的实例,而你不想重复自己,我已经提供了一个解决方案。

#foo是您在单击文本输入修饰符时要更改的文本输入。 ul[data-change]可以是修饰符的容器,并具有data-change属性,用于指定修饰符将定位到页面上的哪个input元素。 每个修饰符元素都有一个data-value属性,用于指定在mouseclick添加到目标input内容。

HTML:

  

JS:

 $('[data-change] button').on('click', function(){ var target = $(this).closest('[data-change]').data('change'); $(target).val( $(target).val() + $(this).data('value') ); }); 

这是一个小提琴: http : //jsfiddle.net/vpC6D/1/