Jquery cfinput autosuggest未从.get()调用正确返回
当从jQuery.get()调用返回cfinput标记时,我遇到了一个问题。如果我像这样将标签放在主页上: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">
<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
}