试图在输入中附加字母到文本
我有一个使用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/