【问题标题】:Unable to use jquery control datetimepicker in velocity template (JIRA Custom field plugin)无法在速度模板中使用 jquery 控制 datetimepicker(JIRA 自定义字段插件)
【发布时间】:2013-06-27 06:43:08
【问题描述】:

我正在创建一个 JIRA 自定义字段插件,并希望使用下面的“日期时间选择器”控件作为下面链接中给出的“月年选择器”。 http://jquerybyexample.blogspot.com/2012/06/show-only-month-and-year-in-jquery-ui.html

JIRA 版本是“5.2.11”

速度模板中的JQUERY control STUFF:

<script type="text/javascript">
    alert("Handler for .click() called.");  //get alert
    AJS.$("#target").click(function() {      //get alert while click on below "target" div.
        alert("Handler for .click() called.");
    });
    AJS.$(document).ready(function () {       
        AJS.$('#txtDate').datepicker({     //shows javascript error as"[object Object] has no    method 'datepicker' "              
            changeMonth: true,
            changeYear: true,
            dateFormat: 'MM yy',
            onClose: function () {
                var iMonth = AJS.$("#ui-datepicker-div .ui-datepicker-month :selected").val();
                var iYear = AJS.$("#ui-datepicker-div .ui-datepicker-year :selected").val();
                AJS.$(this).datepicker('setDate', new Date(iYear, iMonth, 1));
            },
            beforeShow: function () {
                if ((selDate = AJS.$(this).val()).length > 0) {
                    iYear = selDate.substring(selDate.length - 4, selDate.length);
                    iMonth = jQuery.inArray(selDate.substring(0, selDate.length - 5), AJS.$(this).datepicker('option', 'monthNames'));
                    AJS.$(this).datepicker('option', 'defaultDate', new Date(iYear, iMonth, 1));
                    AJS.$(this).datepicker('setDate', new Date(iYear, iMonth, 1));
                }
            }
        }); 
    });
    alert('final');  // not alert as error at above code
</script> 

javascript错误如下:

"TypeError: Object [object Object] 没有方法 'datepicker' [http://localhost:2990/jira/s/en_US1rk3us/787/3/1/_/download/superbatch/js/batch.js:9919"

任何想法,我如何可以将此控件用于自定义字段 - 速度模板并开始工作?

【问题讨论】:

    标签: jquery jquery-ui jira velocity jira-plugin


    【解决方案1】:

    尝试编辑文件system-webresources-plugin.xml(应该在/atlassian-jira/WEB-INF/classes/),并添加到&lt;web-resource key="jira-fields"&gt;这个代码:

    <resource type="download" name="jquery.min.js" location="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
        <param name="source" value="webContextStatic"/>
    </resource>
    <resource type="download" name="jquery-ui.min.js" location="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js">
        <param name="source" value="webContextStatic"/>
    </resource>
    

    不要使用AJS.$ - 这是 Jira 的内部 jQuery。使用它会阻止 jQuery ui 工作。直接用jQuery试试:

    $(document).ready(function () {       
         $('#txtDate').datepicker({
              .....
    

    等等..

    【讨论】:

    • 我已经更新了 xml 文件并从速度模板中删除了包含 js 文件,但它仍然给我同样的错误 ""TypeError: Object [object Object] has no method 'datepicker' [http://localhost:2990/jira/s/en_US1rk3us/787/3/1/_/download/superbatch/js/batch.js:9919" 。我已经用相同的细节更新了上面的问题。
    • batch.js 中的那个链接,它只是 batch.js 中弹出方法的最后一行。甚至,在这里,没有找到日期选择器第一个对象..所以,看起来,JS 仍然不可用......
    • 当我删除 AJS 然后它不起作用。甚至简单地保留 $(document).ready(function() { alert('');} );没用...需要保留 AJS.$ 。看起来,默认速度模板变量通过'$'访问所以..
    • 嗨,由于 jquery 似乎无法正常工作,另一种方法,尝试使用 AUI CALANDER .. 你能检查一下面临的问题吗:stackoverflow.com/questions/17341989/… 如果我们可以删除日历日期并只保留月份和年份在这里并使用 JQUERY 或任何可能的方法格式化日期 MMM YYYY?谢谢
    猜你喜欢
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    相关资源
    最近更新 更多