在jQuery选项参数中添加字符串

在jQuery选项参数中添加字符串,jquery,jquery-ui,autocomplete,Jquery,Jquery Ui,Autocomplete,我正在写一个包含多种数据类型的自动完成表单 在HTML中,数据类型通过使用键属性进行分隔: <input type="text" name="data0" value="" size="20" id="data0" key="country"/> <input type="text" name="data1" value="" size="20" id="data1" key="state"/> 但它不起作用 我想知道这是否是由于.attr()选择器造成的,因此我编写了

我正在写一个包含多种数据类型的自动完成表单

在HTML中,数据类型通过使用键属性进行分隔:

<input type="text" name="data0" value="" size="20" id="data0" key="country"/>
<input type="text" name="data1" value="" size="20" id="data1" key="state"/>
但它不起作用

我想知道这是否是由于.attr()选择器造成的,因此我编写了另一段代码来测试它:

var test="state";
$(function() {
$(":input").autocomplete({
    source: "query.php?type="+test+"&mode=1",
    minLength: 2
});
});
也不行

提前感谢您的帮助

编辑:

这会奏效的。所以我相信这不是选择器的问题

$(function() {
$(":input").autocomplete({
    source: "query.php?type="+$(this).attr("key")+"&mode=1",
    minLength: 2
});
});
将不起作用,因为此没有指向您认为它的作用。你可以这样做

$(":input").each(function() {
   $(this).autocomplete({
    source: "query.php?type="+encodeURIComponent($(this).attr("key"))+"&mode=1",
    minLength: 2
   });
});

您还应该像我为您所做的那样对上述参数进行编码。

您使用的是哪个自动完成插件?@sdleihssirch是jqueryui中提供的一个插件,经过修改后可用于POST。我已经测试了将“query.php?type=“+$(this).attr(“key”)+”和mode=1”替换为“query.php?type=state&mode=1”的代码,并且它可以工作。所以我认为这是一个在参数中附加字符串而不是选择器的问题。谢谢。@shiroin我的代码是不同的-这个
将解析为每个
输入
,因为它封装在jQuery的set
each()
中。
$(function() {
$(":input").autocomplete({
    source: "query.php?type="+$(this).attr("key")+"&mode=1",
    minLength: 2
});
});
$(":input").each(function() {
   $(this).autocomplete({
    source: "query.php?type="+encodeURIComponent($(this).attr("key"))+"&mode=1",
    minLength: 2
   });
});