将自动填充添加到以下元素之后:
commObj=$("#communityName").autocomplete("auto_commName_backend.php",
{'onItemSelect': handleItemSelect}, {'extraParams': 'ndo' + ndo});
有没有办法可以禁用它或动态删除元素的自动完成功能?
我正在使用Dylan Verheul的修改过的jquery自动完成插件。 http://www.pengoworks.com/workshop/jquery/autocomplete_docs.txt
答案 0 :(得分:44)
您可以使用以下代码行删除自动填充行为:
if (jQuery(control).data('autocomplete')) {
jQuery(control).autocomplete("destroy");
jQuery(control).removeData('autocomplete');
}
答案 1 :(得分:11)
我找到的最简单,最安全的方法是:
$(control).autocomplete({source: []});
或者,如前所述,这也有效:
$(control).autocomplete("destroy");
如果您确定您的控件设置了自动填充处理程序。
答案 2 :(得分:2)
在最新版本的jQuery UI(1.12)中,即使存在自动填充数据,import sys
import tkinter
from tkinter import*
import time
global v
global popJ
popJ = 0
def genInput(): #Allows the user to input the data
gen = Toplevel()
gen.wm_title("Data Input")
v = IntVar()
ent1 = Entry(gen, textvariable = v).pack()
ent1Txt = Label(gen, text = 'Please input Juvenile Populations')
ent1Txt.pack()
v2 = StringVar()
ent2 = Entry(gen, textvariable = v2)
ent2Txt = Label(gen, text = 'Please input Adult Populations')
ent2.pack()
ent2Txt.pack()
v3 = StringVar()
ent3 = Entry(gen, textvariable = v3)
ent3Txt = Label(gen, text = 'Please input Senile Populations')
ent3.pack()
ent3Txt.pack()
v4 = StringVar()
ent4 = Entry(gen, textvariable = v4)
ent4Txt = Label(gen, text = 'Please input Survival rates for Juveniles')
ent4.pack()
ent4Txt.pack()
v5 = StringVar()
ent5 = Entry(gen, textvariable = v5)
ent5Txt = Label(gen, text = 'Please input Survival rates for Adults')
ent5.pack()
ent5Txt.pack()
v6 = StringVar()
ent6 = Entry(gen, textvariable = v6)
ent6Txt = Label(gen, text = 'Please input Survival rates for Seniles')
ent6.pack()
ent6Txt.pack()
v7 = StringVar()
ent7 = Entry(gen, textvariable = v7)
ent7Txt = Label(gen, text = 'Please input the birth rate')
ent7.pack()
ent7Txt.pack()
v8 = StringVar()
ent8 = Entry(gen, textvariable = v8)
ent8Txt = Label(gen, text = 'Number of Generations')
ent8.pack()
ent8Txt.pack()
def quit1(): # Needs to be here or it breaks the program
gen.destroy()
return
def submit():
global popJ
popJ = v.get()
popJtxt = Label(gen, text= v.get()).pack()
return
submit1= Button(gen, text="Submit")
submit1.pack()
submit1.configure(command = submit)
return1 = Button(gen, text = 'Return to Menu')
return1.pack(pady=30)
return1.configure(command = quit1)
return
def genView(): # should display the data
disp = Toplevel()
disp.wm_title('Displaying data Values')
popJuvenilesTxt = Label (disp, text = popJ)
popJuvenilesTxt.grid(row =1, column = 1)
def menu(): # creates the gui menu
menu = Tk()
menu.wm_title("Greenfly model")
genInp = Button(menu,text = "Set Generation Values")
genVew = Button(menu,text = 'Dysplay Generation Values')
modelCal = Button(menu,text = 'Run model')
exportData = Button(menu,text = 'Export Data')
quitProgram = Button(menu,text = 'Quit')
genTxt = Label(menu, text= 'Input the Generation values')
genvTxt = Label (menu, text = 'View the current generation values')
modelTxt = Label (menu, text = 'Run the model')
exportTxt = Label (menu, text = 'Export data')
quitTxt = Label (menu, text= 'Exit the program')
genInp.grid(row=1, column=1)
genVew.grid(row=2, column=1)
modelCal.grid(row=3, column=1)
exportData.grid(row=4 , column=1)
quitProgram.grid(row=5, column=1)
genTxt.grid(row=1, column = 2)
genvTxt.grid(row=2, column = 2)
modelTxt.grid(row=3, column = 2)
exportTxt.grid(row=4, column = 2)
quitTxt.grid(row=5, column = 2)
genInp.configure(command = genInput)
genVew.configure(command = genView)
menu.mainloop()
menu()
也不会返回true。
相反,检查$(control).data('autocomplete')
类的存在是否返回true。
我相信以下内容应该足够了。
ui-autocomplete-input
答案 3 :(得分:0)
该插件非常紧密地连接到<input>
。如果它是我的页面,我想我只有两个带有相同“名称”的标签,一个带有自动完成,一个没有。当我想在它们之间切换时,我会使一个禁用并隐藏,并启用/显示另一个。 (编辑哦,并确保字段的值在切换时来回复制)
答案 4 :(得分:0)
如果您为元素添加类似“EnableAC”的类,则可以将该类作为自动完成的目标。当您完成自动完成并想要禁用它时,您将删除该类。
为什么要禁用此功能?如果用户想要更改他们的选择并且自动填充不会触发,则可能会使用户感到困惑。
答案 5 :(得分:0)
我刚刚简要介绍了插件的js文件。
在初始化jquery.autocomplete.js插件期间似乎有一个javascript行(编号21),它将原始源输入设置为:
input.autocompleter = me;
如果没有测试,也许你可以简单地调用以下内容来删除插件和原始输入之间的链接?
$('#<your input id>').autocompleter = null;
答案 6 :(得分:0)
我刚试过 $('#')。autocomplete = null; 它的工作原理。 我允许改变苍蝇的名称,结果不会显示,现在确实如此。 旧的未更改的名称将在此之前显示新的名称
答案 7 :(得分:0)
按元素ID禁用自动完成功能:
$("#elementId").autocomplete({
disabled: true
});