这是我的想法。
例如,我在我的名单上有这个
nameList = [
{ 'id': 1 , 'name': "Fred" },
{ 'id': 2 , 'name': "Dale" },
{ 'id': 3 , 'name': "Denmark" }
]
我在我的模板上有这个
例如:
Name: <input type='text' name='name'>
ID: <input type='hidden' name='id'>
我想在这里做的是,每当我输入名字&#39; Fred&#39;在第一个文本框中,自动地,id将变为1.如果我键入&#39; Dale&#39;,它将变为2.我想要做这种设计的原因是我只想将id保存到数据库。我想我需要使用javascript,但我不知道该怎么做。请...你的帮助非常感谢。提前谢谢
答案 0 :(得分:1)
没有足够的声誉发表评论,因此将其作为答案发布,但不确定您想要的是什么。
如果您正在寻找自动完成类型输入,就像您输入的那样,它会为您提供建议,然后您选择任何一个建议,那么下面的示例可以帮助您。在这里,您可以灵活地向用户显示要显示的内容以及您希望将其用作以后可以保存在数据库中的值。
https://jqueryui.com/autocomplete/
http://demos.jquerymobile.com/1.0rc2/docs/forms/search/
如果这不是您想要的,请稍微解释一下您的问题以及您迄今为止所尝试的内容。
答案 1 :(得分:0)
可能你想要这个:
>>> def get_tag(name):
... values = [x for x in nameList if name in x.values()]
... return "Name: <input type='text' name='{}'>\nID: <input type='hidden' name='{}'>".format(values[0].get('name'), values[0].get('id'))
...
>>> print get_tag('Dale')
Name: <input type='text' name='Dale'>
ID: <input type='hidden' name='2'>
答案 2 :(得分:0)
堆栈溢出不是代码服务。先尝试做一些事情,然后提问。
无论如何,这可能会有所帮助。
HTML:
Name: <input type='text' id='myName'>
<input type='hidden' id='myId'>
JS:
var myName = document.getElementById('myName');
var id = document.getElementById('myId');
var nameList = [
{ id: 1 , name: "Fred" },
{ id: 2 , name: "Dale" },
{ id: 3 , name: "Denmark" }
]
myName.addEventListener('keyup', function(e){
var value = e.target.value;
value = value.toLowerCase();
for(var i=0; i<nameList.length; i++){
var name = nameList[i].name.toLowerCase();
if(name == value) {
id.value = nameList[i].id;
alert(nameList[i].id + ': ' + nameList[i].name);
break;
}
}
}, false);