Datepicker在开关/案例中不使用.after

时间:2014-02-19 02:27:35

标签: jquery datepicker

我想将 Datepicker 附加到我在开关/案例中使用.after所包含的“date”fieldType选项

case "date":
    $this.after('<input type="text" class="value cat_textbox datepicker" />')
    break;

目前,我正在获取<input>容器,但我没有看到日历按钮。另外,当我点击容器时,它不会对Datepicker进行操作。

enter image description here

注意: 当我将<input type="text" class="value cat_textbox datepicker" />直接添加到<body>时, Datepicker 工作正常。

enter image description here

所有其他开关/外壳选项都运行正常。 (参见下面的功能片段。)

/*
** This changes the fieldType options when
** a different Field (age, gender, etc) is selected
*/
function onOperatorSelectChange(e) {
    var $this = $(this);
    var option = $this.find("> :selected");
    var container = $this.parents(".rule");
    var fieldSelect = container.find(".field");
    var currentValue = container.find(".value");
    var val = currentValue.val();

    switch(option.data("fieldType")) {
        case "none": 
            $this.after($("<input>", {"type": "hidden", "class": "value"}));
            break;
        case "text":
            $this.after($("<input>", {"type": "text", "class": "value"}));
            break;
        case "date":
            $this.after('<input type="text" class="value cat_textbox datepicker" />')
            break;
        case "textarea":
            $this.after($("<textarea>", {"class": "value"}));
            break;
        case "select":
            var select = $("<select>", {"class": "value"});
            var options = fieldSelect.find("> :selected").data("options");
            for(var i=0; i < options.length; i++) {
                var opt = options[i];
                select.append($("<option>", {"text": opt.label || opt.name, "value": opt.name}));
            }
            $this.after(select);
    break;
}
currentValue.remove();

}

1 个答案:

答案 0 :(得分:0)

在创建datepicker文本框

后调用datepicker方法

更改案例“日期”中的代码:

尝试以下代码

case "date":
    $this.after('<input type="text" class="value cat_textbox datepicker" />');
    $(".datepicker").datepicker({dateFormat: 'dd-mm-yy',
        changeMonth: true,
        changeYear: true,
        yearRange:'-50:+20'
    });
    break;