使用JavaScript so按钮将文本插入当前文本字段
非常简单,我想写一些代码来显示按钮列表。单击其中一个时,将预定义文本块插入光标此时所在的文本字段中。我可以获得要插入的文本,但只能在一个文本字段中 我需要这个文本是可扩展的,因为它将在不同的文本字段数页使用 到目前为止,我的代码如下。我知道我需要以某种方式将变量inFocus从第二个JavaScript函数插入到当前刚刚调用txt1的onClick=insertText函数的第一个参数中 是我找错了树还是这是正确的方法 我尝试过在主代码中使用JavaScript,但没有成功。有什么想法吗 函数insertTexttext { var-elemID=false; $'input,textarea'.focusfunction{ elemID=$this.attr'id'; }; var elem=document.getElementByIdelemID; elem.innerHTML+=文本; } 标题 函数insertTextelemID,文本 { var elem=document.getElementByIdelemID; elem.innerHTML+=文本; } var-inFocus=false; $'input,textarea'.focusfunction{ inFocus=$this.attr'id'; }; $'mybutt'。单击函数{ 警报“光标是元素id:”中的最后一个+inFocus; };使用JavaScript so按钮将文本插入当前文本字段,javascript,html,text,textbox,Javascript,Html,Text,Textbox,非常简单,我想写一些代码来显示按钮列表。单击其中一个时,将预定义文本块插入光标此时所在的文本字段中。我可以获得要插入的文本,但只能在一个文本字段中 我需要这个文本是可扩展的,因为它将在不同的文本字段数页使用 到目前为止,我的代码如下。我知道我需要以某种方式将变量inFocus从第二个JavaScript函数插入到当前刚刚调用txt1的onClick=insertText函数的第一个参数中 是我找错了树还是这是正确的方法 我尝试过在主代码中使用JavaScript,但没有成功。有什么想法吗 函数i
您有jQuery,因此应该去掉按钮上的onclick=并使用jQuery方式 例如:
$('input[type=button]').click(function(){
$('#txt1').val('the text you want to insert....');
});
您可以从a和您的id组合jQuery选择器:
$('#mybutt').click(function() {
$('#' + inFocus).val('the text you want to insert....');
});
这会将文本插入到id为inFocus的元素中。
如果未选择textarea,例如inFocus为false,则会抛出错误。内联javascript事件属性是IMO,尤其是在加载jQuery时。jQuery使将事件附加到DOM对象变得轻而易举 使用button而不是input type=按钮通常是一个更好的主意,因为您的显示和值是分开的 有关更多信息,请参阅代码注释 小提琴: HTML
我认为,这应该对您有所帮助。或者您需要向我提供更多详细信息。要从数据库中插入数据,您需要使用字段id和使用ajax调用函数,并将该值插入textfield。您可以只添加相关的HTML和JavaScript吗。PHP do-while循环什么都不做,只是混淆了问题。do-while循环创建了许多按钮,因为这些按钮是从数据库中提取的,所以它有点相关,与您遇到的客户端问题无关。发布它生成的HTML,这样我们就可以处理它,或者只是接受我的答案:这到底是一个更好的答案吗?奇怪…我是2019年来的,现在你可以用你的欢迎。谢谢你的接受,投票也会很棒的。
<textarea cols="50" rows="5" id="txt1"></textarea>
<textarea cols="50" rows="5" id="txt2"></textarea>
<textarea cols="50" rows="5" id="txt3"></textarea>
<br>
<button type="button" value=" word1 " class="insert-word">word1</button>
<button type="button" value=" word2 " class="insert-word">word2</button>
var input_position = 0, last_input = false;
// if the input[type="text"] or textarea has a keyup or mouseup event then run this
$('input[type="text"], textarea').on('keyup mouseup', function () {
last_input = $(this);
// gets the last input's position
if('selectionStart' in this) {
input_position = this.selectionStart;
} else if('selection' in document) {
this.focus();
var Sel = document.selection.createRange();
var SelLength = document.selection.createRange().text.length;
Sel.moveStart('character', -this.value.length);
input_position = Sel.text.length - SelLength;
}
});
$('button.insert-word').click(function () {
if(!last_input) return; // if an input wasn't selected don't run
var last_input_value = last_input.val(); // value of input
var word_to_insert = this.value; // value of button
// split the last input's value then insert the word
last_input.val([
last_input_value.slice(0, input_position),
word_to_insert,
last_input_value.slice(input_position)
].join(''));
});
<html>
<head>
<script src='jquery.js'></script>
<script>
$(document).ready(function(){
$('.buttonClick').click(function(){
});
$( ".textFocus" ).focusout(function() {
$('#' + this.id).val('This text is append when mouse out from textfield.');
});
});
</script>
</head>
<body>
<button id='b1' class='buttonClick'>button1</button>
<button id='b2' class='buttonClick'>button2</button>
<button id='b3' class='buttonClick'>button3</button>
<button id='b4' class='buttonClick'>button4</button>
<button id='b5' class='buttonClick'>button5</button><br />
Textbox1: <textarea cols="50" rows="10" id="txt1" class='textFocus'></textarea><br />
Textbox2: <textarea cols="50" rows="10" id="txt2" class='textFocus'></textarea><br />
Textbox3: <textarea cols="50" rows="10" id="txt3" class='textFocus'></textarea>
</body>
</html>