2014-07-13 25 views
0

我想在第二个typeahead输入的远程AJAX调用中使用typeahead输入的结果。在第二个输入的远程查询中使用一个Typeahead输入的结果

这是我到目前为止有:

var result1 = new Bloodhound({ 
    datumTokenizer : Bloodhound.tokenizers.obj.whitespace('result'), 
    queryTokenizer : Bloodhound.tokenizers.whitespace, 
    limit : 100, 
    remote : { 
     url : 'getResult1.php?q=%QUERY' 
    } 
}); 

result1.initialize(); 

$('#input1').typeahead({ 
    minLength : 2 
}, { 
    name : 'result1', 
    displayKey : 'result', 
    source : result1.ttAdapter() 
} 
}).on('typeahead:selected typeahead:autocompleted', function($e, datum) { 
    $('#input2').typeahead({ 
     minLength : 1 
    }, { 
     name : 'result2', 
     displayKey : 'value', 
     remote: { 
      url : 'getResult2.php?q=%QUERY&r=datum['result']' 
    } 
} 

我缺少什么?

+0

This answer migh help? http://stackoverflow.com/a/21591540/203371 –

回答

0

似乎第二个输入没有很好地配置Bloodhound对象。它必须是这样的:

var result1 = new Bloodhound({ 
    datumTokenizer : Bloodhound.tokenizers.obj.whitespace('result'), 
    queryTokenizer : Bloodhound.tokenizers.whitespace, 
    limit : 100, 
    remote : { 
     url : 'getResult1.php?q=%QUERY' 
    } 
}); 

result1.initialize(); 

$('#input1').typeahead({ 
    minLength : 2 
}, { 
    name : 'result1', 
    displayKey : 'result', 
    source : result1.ttAdapter() 
} 
}).on('typeahead:selected typeahead:autocompleted', function($e, datum) { 
    var result2 = new Bloodhound({ 
     datumTokenizer : Bloodhound.tokenizers.obj.whitespace('result'), 
     queryTokenizer : Bloodhound.tokenizers.whitespace, 
     limit:100, 
     remote: { 
      url : 'getResult2.php?q=%QUERY&r=datum['result']' 
     } 
    }); 

    result2.initialize(); 

    $('#input2').typeahead({ 
     minLength : 1 
    }, { 
     name : 'result2', 
     displayKey : 'value', 
     source: result2.ttAdapter() 
    } 
} 
相关问题