我正在写一个具有多种数据类型的自动完成表单。
在HTML中,使用key属性来分隔数据类型:
<input type="text" name="data0" value="" size="20" id="data0" key="country"/>
<input type="text" name="data1" value="" size="20" id="data1" key="state"/>
在js文件中,我在输入上运行一个通配符选择器,并以这种方式使用自动补全:
$(function() {
$(":input").autocomplete({
source: "query.php?type="+$(this).attr("key")+"&mode=1",
minLength: 2
});
});
但它不起作用。
我想知道是不是因为.attr()选择器,所以我写了另一个代码来测试它:
var test="state";
$(function() {
$(":input").autocomplete({
source: "query.php?type="+test+"&mode=1",
minLength: 2
});
});
也不起作用。
提前感谢您的帮助!
编辑:
$(function() {
$(":input").autocomplete({
source: "query.php?type=state&mode=1",
minLength: 2
});
});
这将会起作用。所以我确信这不是选择器的问题。
发布于 2011-02-17 05:26:26
$(function() {
$(":input").autocomplete({
source: "query.php?type="+$(this).attr("key")+"&mode=1",
minLength: 2
});
});
将不会工作,因为this
没有指向您认为它做的事情。你可以这样做..。
$(":input").each(function() {
$(this).autocomplete({
source: "query.php?type="+encodeURIComponent($(this).attr("key"))+"&mode=1",
minLength: 2
});
});
您还应该对上面的参数进行编码,就像我为您所做的那样。
https://stackoverflow.com/questions/5025333
复制相似问题