0

我正在尝试在 Drupal 上的表单中添加一个 datepicker 小部件。

我有一个包含以下代码的页面:

<script>
$(function() {
    $( "#datepicker" ).datepicker({
        changeMonth: true,
        changeYear: true
    });
});
</script>
<form action="/scripts/new-customer.php">
<div>Birth date: <input type="text" id="datepicker" name="bday" /></div>
</form>

但不幸的是,我得到了这个主题的错误。我试着写如下:

<script>
    (function($) {
        $( "#datepicker" ).datepicker({
            changeMonth: true,
            changeYear: true
        });
    })(jQuery);
</script>

但是我在后面的行中遇到了同样的错误。

不幸的是,我无法进一步了解 Drupal 文档。

4

5 回答 5

3

因为其他 JavaScript 库冲突。使用 jQuery.noConflict()

var jq = jQuery.noConflict();

jq(function() {
  jq( "#datepicker" ).datepicker({
        changeMonth: true,
        changeYear: true
    });
});

初始化前

drupal_add_library('system','ui.datepicker')
于 2013-04-20T17:52:22.803 回答
1

不确定,但这可能会有所帮助:

jQuery(function($) {
  $("#datepicker").datepicker({
    changeMonth: true,
    changeYear: true
  });
});
于 2013-04-20T18:09:26.973 回答
0

Drupal 可能正在使用jQuery 的 noConflict 选项。试试jQuery("#datepicker").datepicker()吧。

于 2013-04-20T17:51:45.370 回答
0

为避免与其他 JS 库发生冲突,“$”不会在全局 .js 文件中创建场景。因此,您应该在 js 代码周围添加以下代码:

(function($) {
Drupal.behaviors.naturalessenceTheme = {
attach: function(context, settings) {

$('selector').mouseover(function() {
//now working
});

}
};
})(jQuery);
于 2013-08-15T23:12:14.247 回答
0

正如泰米尔语所建议的,以下代码运行良好:

<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/south-street/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
<script type="text/javascript" src="api/jquery.ui.datepicker-it.js"></script>
<?php drupal_add_library('system','ui.datepicker') ?>
<script>
    var jq = jQuery.noConflict();
    jq(function() {
        jq.datepicker.setDefaults(jq.datepicker.regional['it']);
        jq("#giornoSel").datepicker(
            { 
                dateFormat: 'dd/mm/yy', 
                altField: '#giorno', 
                altFormat: 'yy-mm-dd', 
                showButtonPanel: true
            }
        );
    });
</script>

于 2016-03-15T13:59:06.007 回答