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