我有一个包含很多文本框的页面.当有人点击链接时,我希望在光标所在的位置插入一两个字,或者将其附加到具有焦点的文本框中.
例如,如果光标/焦点在文本框上,说"苹果",并且他点击了一个"[email]"的链接,那么我希望文本框说'apple bob@example.com'.
我怎样才能做到这一点?这是否可能,因为如果重点是收音机/下拉/非文本框元素怎么办?可以记住最后关注文本框的内容吗?
我有<textarea>用户可以向世界输入他的信息!下面,有上传按钮...我想添加上传文件的链接(不用担心,我有它); 就在他输入的文本旁边.
比如,他输入'Hello,world!',然后上传文件(通过AJAX完成),并在下一行添加到该文件的链接<textarea>.注意!是否可以将光标(他离开的位置)保持在同一个地方?
所有这些都可以通过jQuery完成......任何想法?我知道有方法'append()',但不会出现这种情况,对吧?
下面的脚本将文本插入文本区域的末尾.我需要更改为在文本区域中当前光标位置之后插入文本.
jQuery(document).ready(function($){
$('#addCommentImage').click(function(){
var imageLoc = prompt('Enter the Image URL:');
if ( imageLoc ) {
$('#comment').val($('#comment').val() + '[img]' + imageLoc + '[/img]');
}
return false;
});
});
Run Code Online (Sandbox Code Playgroud) 我想做一个自动填充,如果有人输入"@",他们会被提供一个自动完成的名单.
我正在使用jQueryUI自动完成,我的解决方案(http://jsfiddle.net/aUfrz/22/)唯一的问题是自动完成文本输入需要放在textarea光标位置的顶部,而不是就目前而言.
这是我在JSFiddle中的JS:
$(document.body).on('keypress', 'textarea', function(e) {
var names = [
"johnny",
"susie",
"bobby",
"seth"
],
$this=$(this),
char = String.fromCharCode(e.which);
if(char == '@') {
console.log('@ sign pressed');
var input=$('<input style="position:relative; top:0px; left:0px;background:none;border:1px solid red" id="atSign" >');
$this.parent().append(input);
input.focus();
input.autocomplete({
source: names,
select: function (event, ui) {
console.log('value selected'+ui.item.value);
//$this.val('@'+ui.item.value);
$this.insertAtCaret(ui.item.value);
$this.focus();
input.remove();
} //select
}); //autocomplete
} //if
}); // keypress
Run Code Online (Sandbox Code Playgroud)
HTML:
<textarea></textarea>?
Run Code Online (Sandbox Code Playgroud)
请注意,我没有在这里显示一个jQuery插件,我曾经在插入位置插入所选的自动完成建议:insertAtCaret()我在其他SO问题中找到了.
我有一个带有一些单词和文本的文本框.我想要做的是,当用户点击一个按钮时,从指针的当前位置向文本框的文本添加一些单词.如何做到这一点?这是文本框和按钮:
<textarea id="txt" rows="15" cols="70">There is some text here.</textarea>
<input type="button" id="btn" value="OK" />
Run Code Online (Sandbox Code Playgroud) 我有一个带textarea(id = details)的表单.
有没有办法<br />在这个textarea中点击Enter时在光标位置插入换行符()的HTML代码?
我只需要这个就可以在IE中工作了.
<textarea class="input height120 elastic span12" name="details" id="details" onkeyup="countCharLimit(event)" onpaste="countCharLimit(event)"></textarea>
Run Code Online (Sandbox Code Playgroud) 我在这里构建一个简单的模板系统。基本上我已经设置了将预设变量添加到textarea.
问题是我希望能够textarea在我的光标所在位置添加文本。就像当您在 stackoverflow 上单击编辑器窗口中的 URL 链接以获取帖子时,该链接将添加到您的光标所在的位置。
我怎样才能做到这一点?并且可以使用原型JS来完成吗?
我有以下代码:
document.onkeydown=function(e) {
if (e.which == 13 && isCtrl) {
log('Ctrl CR');
} else if (e.which == 17) {
isCtrl = true;
};
Run Code Online (Sandbox Code Playgroud)
我需要在光标位于输入文本区域中的位置插入回车符/换行符.现在我考虑一下,我应该使用textarea选择器而不是document.onkeydown,但$('textarea').onkeydown不起作用.
我正在使用$().post和php来改变<textarea>的内容.
脚本正在成功 - firebug清楚地显示textarea标签之间的文本已经改变,我的小警报触发.
但是,用户看不到更改.在Firefox中,根本不会发生变化,而在IE中,textarea最迟会更新10秒.
这是我正在使用的jquery:
$(document).ready(function() {
$('#pv_list li:first').addClass('hilite');
$("input[name='db_entries']:first").attr('checked', 'checked');
$("input[name='db_entries']").click(function () {
$.post("changeEntry.php", {post: $(this).val()}, function(data) {
$("textarea").text(data);alert('done');
});
$('#pv_list li').removeClass('hilite');
$(this).parent().addClass('hilite');
});
});
Run Code Online (Sandbox Code Playgroud)
起初我以为是因为页面没有验证,但它验证了xhtml过渡.
真正烦扰我的是我让它早点工作,无法弄清楚我改变了什么.
嗨,我正在尝试实现在这个问题上提出的解决方案: 使用jQuery将文本插入textarea
但是不要紧张.
将一些虚拟文本添加到textarea元素时,此平面函数可以正常工作:
function add_to() {
$('#ad_textarea').val($('#ad_textarea').val()+'test');
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将此函数连接到变量时,它会中断:
function add_to(word) {
$('#ad_textarea').val($('#ad_textarea').val()+word);
}
Run Code Online (Sandbox Code Playgroud)
从这行代码调用时:
<?php foreach ($words as $word) {
echo "<li class='$word[0]'><a href='#' onclick='add_to('$word');'>$word</a></li>";
}
?>
Run Code Online (Sandbox Code Playgroud)
我查看了输出的代码,看起来很干净:
<li class='a'><a href='#' onclick='add_to('aardvark');'>aardvark</a></li>
Run Code Online (Sandbox Code Playgroud)
我最终试图让他们在文本区打印出来.谁能发现我的滑倒?
TIA
需要一个有关如何使用jquery在html文本区域的光标位置插入文本的工作代码示例?在某个地方阅读有一个插件可以完成但不确定插件是如何工作的.
jquery ×10
javascript ×8
textarea ×3
html ×2
add ×1
css ×1
hyperlink ×1
jquery-ui ×1
php ×1
prototypejs ×1