Javascript适用于硬编码字符串,但不适用于变量

时间:2015-09-01 10:05:38

标签: javascript php jquery ajax

我有一个问题,我整个上午都在挣扎,所以我觉得是时候得到一些帮助了!我有一个javascript函数,它将用户输入的值输入到自动完成框中,使用AJAX将该值发送到查询数据库的php脚本,然后使用可能的选项填充以下框。问题是,当我在所选选项中进行硬编码时,一切正常:

var selected="Ed Clancy";

但不是从盒子里拿出来的,所以:

var selected = this.getValue();

我已经尝试使用警告框调试它,并且两个框中都有相同的字符串,所以我完全不解!有任何想法吗?完整代码如下:

$(riderSelected).on('selectionchange', function(event){
    var selected = this.getValue();
    //var selected="Ed Clancy";
    alert(selected);
    $('#nap4').removeAttr('disabled');
    $('#nap4').empty();
    $('#nap4').append($("<option>-select-</option>"));

    $.ajax({ 
type: "GET",
url: 'getbiketype.php',
data: { name: selected },
success:  function(data) {
  console.log(data);
  $('#nap4').append(data);
}
});

});

2 个答案:

答案 0 :(得分:2)

根据 magicsuggest 文档 - http://nicolasbize.com/magicsuggest/doc.html,你可能会这样做

var selected = this.getValue()[0];

如果您不允许多项选择

答案 1 :(得分:0)

按照我在下面为您写的更改您的代码。

<强>代码

$(riderSelected).on('change', function (event) {
    var selected = this.value;
    alert(selected);
    $('#nap4').removeAttr('disabled');
    $('#nap4').empty();
    $('#nap4').append($("<option>-select-</option>"));

    $.ajax({
        type: "GET",
        url: 'getbiketype.php',
        data: {name: selected},
        success: function (data) {
            console.log(data);
            $('#nap4').append(data);
        }
    });

});