Javascript JQuery如何单击html元素复制到文本区域?
是否可以单击列表中的文本以添加到文本框中。我制作了一个JSON api,它可以获取数据库中的人员列表。然后我有一个表单,它有一个文本字段并显示人员列表。我想单击某个特定的人并将其添加到文本框中 main.jsJavascript JQuery如何单击html元素复制到文本区域?,javascript,jquery,html,Javascript,Jquery,Html,是否可以单击列表中的文本以添加到文本框中。我制作了一个JSON api,它可以获取数据库中的人员列表。然后我有一个表单,它有一个文本字段并显示人员列表。我想单击某个特定的人并将其添加到文本框中 main.js var ajax_call = function() { var $people = $('#people'); $.ajax({ type: 'GET', url: '/all/api', su
var ajax_call = function() {
var $people = $('#people');
$.ajax({
type: 'GET',
url: '/all/api',
success: function(people) {
$.each(people, function(i, person) {
$people.empty()
});
$.each(people, function(i, person) {
$people.append('<li>name: ' + person.first_name+', last: '+ person.last_name + '</li>');
});
}
});
$("#people").on("click", "li", function() {
var content = $(this).html();
//$("#testbox").val(content); //replace existing name in textbox
$("#testbox").val($("#testbox").val() + content + "\n"); //add new name to textbox
});
};
var interval = 800;
setInterval(ajax_call, interval);
var ajax\u call=function(){
var$people=$(“#people”);
$.ajax({
键入:“GET”,
url:“/all/api”,
成功:职能(人员){
美元。每个人(人、职能(i、人){
$people.empty()
});
美元。每个人(人、职能(i、人){
$people.append(“姓名:”+person.first\u name+”,last:“+person.last\u name+” );
});
}
});
$(“#人”)。在(“单击”、“li”,函数()上){
var content=$(this.html();
//$(“#testbox”).val(内容);//替换文本框中的现有名称
$(“#testbox”).val($(“#testbox”).val()+内容+“\n”);//向文本框添加新名称
});
};
var区间=800;
setInterval(ajax_调用,interval);
form.html
<form id="textbox" action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="create" />
</form>
<ul id="people"></ul>
{%csrf\u令牌%}
{{form.as_p}}
我认为你的问题的答案很简单。
在代码中有一行
$("#people").keyup(function() {
这可能不是您想要做的,因为现在您正在等待列表上的keyup(释放密钥)事件。首先,您的问题表明您希望用户单击而不是按下按钮,其次您希望列表项而不是列表本身
因此,在我看来,您必须将该部分更改为:
$("li","#people").click(function(){
var content = this.html();
$("#testbox").val(content);
});
我认为你问题的答案很简单。 在代码中有一行
$("#people").keyup(function() {
这可能不是您想要做的,因为现在您正在等待列表上的keyup(释放密钥)事件。首先,您的问题表明您希望用户单击而不是按下按钮,其次您希望列表项而不是列表本身
因此,在我看来,您必须将该部分更改为:
$("li","#people").click(function(){
var content = this.html();
$("#testbox").val(content);
});
尝试这个附加到ul但经过li过滤的“单击”功能(这允许列表保持动态),它允许您添加单个名称(两个版本,一个覆盖现有文本字段信息,另一个附加到它):
$("#people").on("click", "li", function() {
var content = $(this).html();
//$("#testbox").val(content); //replace existing name in textbox
$("#testbox").val($("#testbox").val() + content + "\n"); //add new name to textbox
});
尝试这个附加到ul但经过li过滤的“单击”功能(这允许列表保持动态),它允许您添加单个名称(两个版本,一个覆盖现有文本字段信息,另一个附加到它):
$("#people").on("click", "li", function() {
var content = $(this).html();
//$("#testbox").val(content); //replace existing name in textbox
$("#testbox").val($("#testbox").val() + content + "\n"); //add new name to textbox
});
试试这个: 替换这个
$("#people").keyup(function() {
var content = $('#people').html();
$("#testbox").val(content);
});
用这个
$("#people").click(function() {
var content = $('#people').html();
$("#testbox").val(content);
});
试试这个: 替换这个
$("#people").keyup(function() {
var content = $('#people').html();
$("#testbox").val(content);
});
用这个
$("#people").click(function() {
var content = $('#people').html();
$("#testbox").val(content);
});
如果我现在理解了你的问题
$("#people").click(function(){
var content = $('#people').html();
$("#testbox").val(content);
});
我应该做这项工作。但是我认为你应该使用像custom属性这样的东西,而不是id,因为一个特定的标签只能有一个id。如果我马上理解了你的问题的话
$("#people").click(function(){
var content = $('#people').html();
$("#testbox").val(content);
});
我应该做这项工作。但我认为您应该使用自定义属性之类的内容,而不是id,因为特定标签只能有一个id。ul的键控功能?真的吗?正如Anoop所说,您的代码中有一个输入错误(可能是输入错误)。。只需将$(“#people”)。keyup替换为$(“#people”)。单击(你应该没事。是的,keyup是一个输入错误。现在看看一些建议,我已经根据人们的建议编辑了这个问题,但当我单击ul的personkey up函数时什么都没有发生?真的吗?正如另一个操作所述,你有一个输入错误(可能是输入错误)在代码中..只需将$(“#people”).keyup替换为$(“#people”)。单击(你应该没问题。是的,键盘输入错误。现在看一些建议,我已经根据人们的建议编辑了这个问题,但是当我点击一个人时什么都没有发生。你的演示似乎很清楚地显示了我在寻找什么,但是当我尝试实现它时,当我点击li时什么都没有发生。我已经用你的exa更新了代码是否还添加了文本框或要用单击的名称填充的文本框的有效引用?另一个输入错误:(您的示例运行得很好,谢谢您您的演示似乎很好地展示了我要查找的内容,但当我尝试并实现它时,单击li时什么也没有发生。我已使用您的示例更新了代码您是否也添加了文本框或对要用单击的名称填充的文本框的有效引用?另一个输入错误:(你的例子做得很好,谢谢