我有一个带有几个按钮的 <textarea>
,这些按钮的目的是将某些文本插入到 <textarea>
中。
下面的代码总是在 <textarea>
的开头插入所需的文本,如果单击按钮时它没有焦点,则可以正常工作。但是,如果 <textarea>
有焦点,我想在单击按钮时将文本插入到光标所在的位置。
以下是我的代码。如果有人能建议我需要如何做到这一点,我将非常感激。谢谢。
jQuery(document).ready(function(){
var button_text = {} // The text to insert for each button click
button_text['insert_event_name'] = 'event_name';
button_text['insert_event_date'] = 'event_date';
button_text['insert_event_start_time'] = 'event_start';
button_text['insert_event_finish_time'] = 'event_finish';
button_text['insert_event_location'] = 'event_location';
button_text['insert_event_address'] = 'event_address';
jQuery('.inserter', '#event-desc-container').on('click', function(){
var button = jQuery(this).attr('name');
var text = '['+button_text[button]+']';
textarea = jQuery('textarea#event_desc', '#event-desc-container');
desc = textarea.val()
textarea.val(text+desc);
});
});
selectionStart
、selectionEnd
等都是undefined
。谢谢。 - David Gardfocus()
函数并在click
事件上调用preventDefault()
函数可以解决问题。在IE中添加unselectable="on"
属性也可以解决问题。或者,您可以使用mousedown
事件来代替。 - Tim Down