Jquery ui 如何向Jquery UI自动完成文本输入添加值
因此,在我的Jinja2模板中有一个jQueryUI自动完成小部件,它非常有效。但是,我希望每个程序的值都是程序ID,而不是名称。IE:Jquery ui 如何向Jquery UI自动完成文本输入添加值,jquery-ui,jinja2,Jquery Ui,Jinja2,因此,在我的Jinja2模板中有一个jQueryUI自动完成小部件,它非常有效。但是,我希望每个程序的值都是程序ID,而不是名称。IE:{{p.id}如何将名称设置为标签,将id设置为值 <script> $(function() { var programs = [ {% for p in programs %} '{{ p.Name }}', {% endfor %} ]; $( "#programs" ).
{{p.id}
如何将名称设置为标签,将id设置为值
<script>
$(function() {
var programs = [
{% for p in programs %}
'{{ p.Name }}',
{% endfor %}
];
$( "#programs" ).autocomplete({
source: programs
});
});
</script>
<input type="text" name="program" id="programs" />
$(函数(){
var程序=[
{程序%中的p为%0}
“{p.Name}}”,
{%endfor%}
];
$(“#程序”).autocomplete({
资料来源:方案
});
});
看一看,这应该能奏效
基本上,您可以向自动完成文本框提供name | id
项的列表。然后它将显示名称,您只需修改文本框,使用.result()
函数将id放入隐藏的表单元素中即可。像这样:
$("#mytextbox")
.autocomplete(data)
.result(
function (evt, data, formatted)
{
$("#hiddenIDbox").val(data[1]);
}
);
这种方法可以工作,但是一旦选择了自动完成建议,条目id就会显示在输入字段中。。我想这会让用户感到困惑。还有其他想法吗
<script>
$(function() {
var programs = [
{% for p in programs %}
{
value: "{{ p.id }}",
label: "{{ p.Name }}"
},
{% endfor %}
];
$( "#programs" ).autocomplete({
source: programs
});
});
</script>
$(函数(){
var程序=[
{程序%中的p为%0}
{
值:“{p.id}}”,
标签:“{p.Name}”
},
{%endfor%}
];
$(“#程序”).autocomplete({
资料来源:方案
});
});
好的,这就行了
UI自动完成输入由标签
属性填充。hidden_val
属性使用select
事件设置隐藏输入
<script>
$(function() {
var programs = [
{% for p in programs %}
{
hidden_val: "{{ p.id }}",
label: "{{ p.Name }}"
},
{% endfor %}
];
$( "#programs" ).autocomplete({
delay: 0,
source: programs,
select: function(event, ui){
$( "#program_val" ).val(ui.item.hidden_val);
}
});
});
</script>
<input type="text" id="programs" />
<input type="hidden" id="programs_val" />
$(函数(){
var程序=[
{程序%中的p为%0}
{
隐藏值:“{p.id}}”,
标签:“{p.Name}”
},
{%endfor%}
];
$(“#程序”).autocomplete({
延迟:0,
资料来源:方案,
选择:功能(事件、用户界面){
$(“#program_val”).val(ui.item.hidden_val);
}
});
});
我相信本文针对的是现在不推荐使用的jQuery自动完成插件,而不是jQueryUI插件(它没有结果
功能)