在我的代码中
<script>
$(document).ready(function(){
$("#btn").on('click', function() {
var caretPos = document.getElementById("txt").selectionStart;
var textAreaTxt = $("#txt").val();
var txtToAdd = $("#btn").val();
$("#txt").val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos) );
})
});
</script>
HTML
<textarea id="txt" rows="15" cols="70"></textarea>
<input type="button" id="btn" value="OK" />
<input type="button" id="btn" value="Bye" />
<input type="button" id="btn" value="TC" />
我想在textarea中提供这些值。但它只给出了Ok按钮的价值。我如何在textarea中给出每个按钮值
答案 0 :(得分:4)
您在元素上拥有相同的ID。 ID必须是唯一的。您可以使用class
并结束:
$(".btn").on('click', function() {
$("#txt").val(this.value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="txt" rows="5" cols="10"></textarea>
<input type="button" class="btn" value="OK" />
<input type="button" class="btn" value="Bye" />
<input type="button" class="btn" value="TC" />
答案 1 :(得分:1)
试试这个 的 HTML 强>
<textarea id="txt" rows="15" cols="70"></textarea>
<input type="button" id="btn" value="OK" />
<input type="button" id="btn" value="Bye" />
<input type="button" id="btn" value="TC" />
<强>的javascript 强>
$('input#btn').click(function()
{
$('#txt').val($('#txt').val()+this.value); // append the value of each button
})
演示here
答案 2 :(得分:1)
<textarea name="insert" rows="5" cols="30" id="insert" onblur="myFunction()"></textarea>
<button class="myvalue" id="myvalue">Ok</button>
<button class="myvalue" id="myvalue">Bye</button>
<button class="myvalue" id="myvalue">Tc</button>
<script>
function insertAt (myField, myValue, startSel, endSel)
{
if (startSel || startSel == '0') {
var startPos = startSel;
var endPos = endSel;
myField.val(myField.val().substring(0, startPos)+ myValue+ myField.val().substring(endPos, myField.val().length));
}` else {
myField.val() += myValue;
}`}var targetBox = $('textarea#insert'),
startSel,
endSel;`targetBox.bind('focusout', function() {
startSel = this.selectionStart;
endSel = this.selectionEnd;
});
$(".myvalue").click(function() {
var myValue = $(this).text();
insertAt(targetBox, myValue, startSel, endSel);
});
</script>
终于可行了
答案 3 :(得分:0)
我建议您将按钮
id
更改为class
,因为id
对每个元素都是唯一的,因此您必须使用class
代替id
。< / p>
$("input.btn").on('click', function() {
$("#txt").val($("#txt").val()+$(this).val());
})
<强> Demo 强>
答案 4 :(得分:0)
你的所有按钮都有相同的'id',而'OK'是第一个,所以这就是那个被返回的按钮......
要获取单击按钮的值,您需要为每个按钮提供一个唯一的ID(无论如何都应该如此)。
我会将你的按钮放在一个单独的容器中,可能是一个div,并将click处理程序应用于该容器。在处理程序函数中,查看事件目标是否具有值属性,如果有,则将其发送到文本框。
或者你可以给每个按钮一个处理程序,这取决于你的情况......
丹尼