Javascript 尝试将字母附加到输入中的文本

Javascript 尝试将字母附加到输入中的文本,javascript,jquery,Javascript,Jquery,我有一个使用disabled属性禁用的文本输入,但我在单击某个类时向其添加输入 单击类I(.I),我将向输入中的现有文本(如果有)添加一个字母I 单击类O(.O),我将向输入中的现有文本(如果有)添加一个字母O 但是,当我单击这些类时,似乎什么都没有发生 这是我的密码: $('.I').click(function(){ $('#code').text($('#code').text()+"I"); }); $('.O').click(function()

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

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

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

但是,当我单击这些类时,似乎什么都没有发生

这是我的密码:

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

这里有一个JSFIDEL复制了这个问题:

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


您可以为所有按钮指定相同的类,而不是像这样对每次单击进行硬编码:

<button class="I button">I</button>
<button class="O button">O</button> 

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

#foo
是当您单击文本输入修改器时要更改的文本输入。
ul[data change]
可以是修饰符的容器,并具有一个
data change
属性来指定修饰符将针对页面上的哪个
input
元素。每个
a
修改器元素都有一个
数据值
属性,该属性指定在
mouseclick
上向目标
输入添加的内容

HTML:


这里有一个提示:

请发布您的HTML代码。代码是否包装在
文档中。准备好了吗?运行代码时是否存在类?在jsfiddle.net中创建一个复制problem@user1479606用小提琴更新了问题。@charlietfl是的,是的。我用小提琴更新了我的问题。
<button class="I button">I</button>
<button class="O button">O</button> 
$('.button').click(function(event) {
    var text = $(this).text();
    $('input:text').val(function(index, val) {
        return val + text;
    });
});
<input type="text" id="foo" value="" disabled="disabled" />
<ul data-change="#foo">
    <li><button id="i" data-value="i">i</button></li>
    <li><button id="a" data-value="a">a</button></li>
</ul>
$('[data-change] button').on('click', function(){
    var target = $(this).closest('[data-change]').data('change');
   $(target).val( $(target).val() + $(this).data('value') );
});