我有一个包含多个文本输入和几个按钮的页面。当我点击一个按钮时,我希望将该按钮的值插入插入符号,即插入符号所在的字段。这是我到目前为止的函数调用:
$('li input[type="button"]').click(function(){$('#aTextInput').insertAtCaret($(this).val())});
我想用实际包含插入符号的输入替换$('#aTextInput')
。有什么想法吗?
(Here's insertAtCaret
函数,在任何人问之前。你可能不需要查看它,除非你很好奇。)
修改
所以我尝试了这个:
jQuery.extend(jQuery.expr[':'], {
focus: "a == document.activeElement"
});
$('li input[type="button"]').click(function(){$('input:focus').insertAtCaret($(this).val())});
但是当我点击一个按钮时,根本没有任何事情发生。我实施this solution错了吗?
答案 0 :(得分:3)
如果你有几个textareas,你可能想做这样的事情。
// any time a textarea gets focus, set the ID
$('textarea').focus(function(){
focusID = $(this).attr('id');
});
// when the button is clicked
$('input[type="button"]').click(function(){
// insert the value into the textarea
insertAtCaret(focusID,$(this).val())
});
Check out my example on jsFiddle here
我遇到的问题是,当单击按钮时,textarea会失去焦点,因此很难找到单击该按钮时焦点的textarea。
修改强>
我刚刚意识到你试图用输入来做这个,新的jsFiddle在这里:http://jsfiddle.net/tVNDL/1/
// any time a input gets focus, set the ID
$('input').focus(function(){
focusID = $(this).attr('id');
});
// when the button is clicked
$('input[type="button"]').click(function(){
// insert the value into the textarea
insertAtCaret(focusID,$(this).val())
});