Jquery cfinput autosuggest未从.get()调用正确返回

Jquery cfinput autosuggest未从.get()调用正确返回,jquery,coldfusion,autosuggest,cfinput,Jquery,Coldfusion,Autosuggest,Cfinput,当从jQuery.get()调用返回cfinput标记时,我遇到了一个问题。如果我像这样将标签放在主页上: <cfform> <cfinput type="text" name="txtinputfilter" autosuggest="cfc:#Application.cfcDir#autoSuggest.lookupTailNumber({cfautosuggestvalue})" > <div id="txt_input_container">

当从jQuery.get()调用返回cfinput标记时,我遇到了一个问题。如果我像这样将标签放在主页上:

<cfform>
    <cfinput type="text" name="txtinputfilter" autosuggest="cfc:#Application.cfcDir#autoSuggest.lookupTailNumber({cfautosuggestvalue})" > 
<div id="txt_input_container"></div>
$(document).ready(function(){
    //the following get call is normally called on another select input's onchange
    $.get('common/includes/FilterData.cfm',
        //note that the following parameters are not being used in this example
        {column: selectedValue,
         filterValue: filterValue,
         filterID: filterID,
         configFile: 'Tracking/config/GeneralMaint.xml'},
        function(response){
            $('#txt_input_container').empty().append(response);
        }
    );
});
然后是此错误消息:

_cf_resetLoadingIcon_1318592952305 is not defined
[Break On This Error] /* ]]> */</script> 
\u cf\u重置加载图标\u 1318592952305未定义
[在此错误上中断]/*]]>*/

这不是你想听的答案

为了动态显示jQuery.get()操作的结果并使新javascript生效,必须在initial.get()的结果处理程序中绑定影响新显示HTML的事件。通常,这是可行的……大致如下:

 $.get('common/includes/FilterData.cfm',
        {column: selectedValue},
        function(response){
           $('input').change(function(event){
              ...addtl. logic here
           }
您可以找到一种方法,在change事件到全新输入字段的绑定中指向/调用您的新函数,该字段是初始.get()调用的结果

当涉及到CFML时,这会变得混乱。cfform/cffinput,当与autosuggest参数结合使用时…为您手动生成javascript…自动。然而,对代码的生成没有真正的控制——CF会随意命名它。当我输入你的代码进行测试时,我得到了一个名为_cf_autosuggest_init_1318614417652的函数……你也一样吗?(可能不会)

因此,如果您不知道将调用什么,那么在.get()的结果上动态绑定新的事件处理程序将非常困难

我的建议是重新设计您的.get()调用,这样您就不会加载cfform/cfinput,而是加载原始数据本身,并将输入保留在父模板上,或者(深呼吸)


…放弃cfform/cfinput,手工编写jQuery autosuggest功能,这样您就可以控制函数的名称——并在动态绑定到函数时在jQuery结果处理程序中指向它们。

我对这个问题有点困惑,Dan。在第二个示例中,我不知道cfinput在哪里使用,您能否修改第一个和第二个代码段,以便它们都显示cfinput相对于jQuery的位置?@Shawn,我编辑了这个问题。。。希望澄清。您是否试图在div_input_容器中动态显示生成的cfform/cfinput?这将是一个问题,因为父模板有自己的jscript,而您调用的模板有自己的jscript——在使用autosuggest param时由CF动态生成。您试图做的事情是可以做到的,但不像您想象的那么容易——您的函数(响应)必须有一个响应cfinput autosuggest的处理程序。之所以会出现错误,是因为动态显示的cf需要正确生成的jscript(由cf生成)——但结果中不会解释它。。。我们正在将站点的大部分内容从ExtJS转换为jQuery,越是深入,我们就越意识到这两者并不总是很好地结合在一起。不幸的是,截止日期迫在眉睫。。。
 $.get('common/includes/FilterData.cfm',
        {column: selectedValue},
        function(response){
           $('input').change(function(event){
              ...addtl. logic here
           }