Jquery自动完成变量无法正常工作

时间:2014-05-18 09:02:04

标签: jquery

有什么理由说明以下内容可能无法通过" checkit"变量到countryselect.php页面?

$(function () {
    $('#abbrev').val("");
    $('#country').on('change', function () {
        alert($("#country").val());
    });
    $("#state").autocomplete({
        source: "/countrycomplete.php?checkit=" + $("#country").val(),
        minLength: 2,
        select: function (event, ui) {
            $('#state_id').val(ui.item.id);
            $('#abbrev').val(ui.item.abbrev);
        }
    });
});

alert()只是为了查看变量是否存在,这会产生预期的结果。但是,这一行,来源:" /countrycomplete.php?checkit =" + $(" #country")。val(), - 不会将变量发送到countrycomplete .PHP

有什么想法吗?

我在这里看到了一些与同一个问题相关的其他帖子,但到目前为止还没有提出一个有效的解决方案....我打赌必定会有一些非常小的错误,但是......到目前为止我还没有能够找到它。

编辑版本:

$(function() {
    $('#abbrev').val("");
    $('#country').on('change', function(){
        $( "#state" ).autocomplete({
            "option", 
            "source", 
            "/countrycomplete.php?checkit="+$(this).val(),
            minLength: 2,
            select: function(event, ui) {
                $('#state_id').val(ui.item.id);
                $('#abbrev').val(ui.item.abbrev);
            }
        });
    });
});

提前致谢!

2 个答案:

答案 0 :(得分:0)

这是因为自动完成插件在页面加载时初始化并且在那时获取输入的值,并且由于页面加载时的输入可能为空,因此该值也为空。

您需要在输入值更改时更新自动填充的URL。你没有提到这是哪个自动完成插件,但假设它是jQuery用户界面你会这样做:

$('#country').on('change', function(){
    $( "#state" ).autocomplete( 
        "option", 
        "source", 
        "/countrycomplete.php?checkit="+$(this).val() 
    );
});

(不相关的旁注:don't use alert() for debugging。)

答案 1 :(得分:0)

$(function(){
$(".selector").autocomplete({
   source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"],
   select: function (event, ui) {
   var state = ui.item.value;
   console.log(state);  
   $('#state_id').val(state);}
  });
});

请参阅http://jsfiddle.net/DrDrQ/