2012-03-11 57 views
0

我要重复一个问题,我之前问过但我需要使用datepicker的帮助。我看不到如何使用我为.on('click')问题获得的解决方案。我可以看到datepicker可能是一个onclick事件。解决方案是将CFdiv放入div中,并监听该元素内的元素的onclick。下面的日期选择器函数的输入是;Jquery和CFML - 在CFdiv里面的日期选择器

<cfinput type="text" class="datestuff" name="IndepthWRec" id="IndepthWRec" value="#CandidateChecklistInfo.IndepthWRec#" /> 

我有一个CF页面有CFdiv。 Cfdiv绑定到页面上的元素。主页面包含脚本。没有任何脚本在CFdiv中的元素上执行。 ajax调用似乎有问题。当我拿出这些代码时,其余的代码似乎在Firebug中启用,但仍然不会执行。

<script type="text/javascript"> 
    $(document).ready(function() { 
    $('#candidatesubmit').on('click', function() { 
     $.ajax({ 
     type: 'POST', 
     url: 'actEditStatusForm.cfm', 
     data: 'form=', 
     error: function (xhr, textStatus, errorThrown)(
     // show error 
     alert(errorThrown);), 
     success: function (response1, textStatus, jqXHR)(
     alert('success');) 
     }); 
    ColdFusion.Grid.refresh('candidatesGrid', true); 
    }); 
    $(function() {$("#JDOrgChartRESOutlineSentToCand").datepicker({dateFormat: 'yy/mm/dd'});}); 
    $(function() {$("#IndepthWRec").datepicker({dateFormat: 'yy/mm/dd'});}); 
</script> 
+0

是否有可能在jQuery库和ColdFusion AJAX实现使用的ExtJS库之间存在某种冲突? ''和其他ColdFusion AJAX元素(如'')会在页面顶部加载一堆JS代码。我们遇到了与jQuery代码冲突的问题,并且倾向于尽可能远离那些标签。在这种情况下,你可能无法做到这一点;也许你应该考虑使用另一个日期选择器,如(呃)''(如果你的最终用户使用Flash)。 – 2012-03-12 13:58:46

回答

1

如果您正在加载使用Ajax的形式,就需要新的HTML已经被插入后,阿贾克斯成功回调中初始化日期选择器。你不能在元素存在之前调用datepicker,所以像on()这样的委托方法是无用的

+0

表单包含用于制表符的cflayouts,其中一个包含cfgrid。 Cfdiv绑定到其中一个cfgriditems。所以,我实际上没有回调。无论如何不容易访问。这是一个复杂的页面,我现在不想重写大部分内容。 – user990016 2012-03-11 15:36:52

+0

规则很简单...不能调用datepicker直到html存在 – charlietfl 2012-03-11 15:52:26

+0

我发现大部分答案[link] http://www.raymondcamden.com/forums/messages.cfm?threadid=D4968C47-F81C-B20A -1A5E85BFF9991B7B [/链接] – user990016 2012-03-11 17:16:26