jquery ui datepicker无法使用标签

时间:2015-06-09 21:25:03

标签: php jquery jquery-ui tabs datepicker

当用户在jquery ui代码中切换选项卡时,他们可以单击按钮将数据添加到jqgrid。唯一不起作用的是datepicker;它将启动一次,然后在切换到新选项卡时,它将不再启动。

源文档代码;

<link href="/Includes/Site.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="/Includes/jqgrid/css/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="/Includes/jqgrid/src/css/ui.jqgrid.css">
<script src="/Includes/jqgrid/js/jquery-2.1.4.min.js"></script>
<script src="/Includes/jqgrid/css/jquery-ui-1.11.4.min.js"></script>
<script src="/Includes/jqgrid/js/i18n/grid.locale-en.js"></script>
<script src="/Includes/jqgrid/js/jquery.jqGrid.min.js"></script>
<script src="/Includes/validation/dist/jquery.validate.min.js"></script>
<script src="/Includes/validation/dist/additional-methods.min.js"></script>

$("#tabs").tabs(
{
    //each tab activation
    activate:function(event, ui)
    { loadGrid(); },
    beforeActivate:function(event, ui)
    {
        var curTab = $('#tabs .ui-tabs-active');
        var curTabName = curTab.text();
        var pos = curTabName.search('-');
        var curID = curTabName.slice(0,pos); 

        var passFrmDiv = "div[id^=adddaydata" + curID + "]";

        $(passFrmDiv).html("");
    }
}); 

function loadGrid()
{
    var curTab = $('#tabs .ui-tabs-active');
    var curTabName = curTab.text();
    var pos = curTabName.search('-');
    var newID = curTabName.slice(0,pos); 

    //reset adddaydata
        $("div[id^=adddaydata" + newID + "]").text('');

    //load form
        var getFrmURL = '90daywellform.php?id=' + newID + '&d=' + $.now();
        var passFrmDiv = "div[id=wellform" + newID +"]";

        $.get(getFrmURL, function(data)
        { $(passFrmDiv).html(data); }); 
        //$(passFrmDiv).load('90daywellform.php?id=' + newID + ' #loadform');

    //load grid
        var getGrdURL = '90daygrid.php?id=' + newID + '&d=' + $.now();
        var passGrdDiv = "div[id=jqgrid" + newID +"]";

        $.get(getGrdURL, function(data)
        { $(passGrdDiv).html(data); }); 

        //$(passGrdDiv).load('90daygrid.php?id=' + newID);

};

//date picker function for adding wells info            
$("button[id^=addday]").click(function() 
{
    var curTab = $('#tabs .ui-tabs-active');
    var curTabName = curTab.text();
    var pos = curTabName.search('-');
    var newID = curTabName.slice(0,pos); //id of the current well
    //var dtTag = '#datepicker' + newID;

    $.get('get90maxday.php?id=' + newID,
        function(data) 
        { 
            var passMax = data;
            var getFrmURL = '90dayadddayform.php?id=' + newID + '&maxday=' + passMax + '&d=' + $.now();
            var passFrmDiv = "div[id^=adddaydata" + newID + "]";

            $.get(getFrmURL, function(data)
            { $(passFrmDiv).html(data); }); 

            //$().text(newID + " " + passAPI);
            //$("#gridarea").load('scadagrid.php?api=' + passAPI + '&start=' + passStart + '&end=' + passEnd);
        }
    );
}); 

以下是正在加载的动态文档中的代码;

<?php
$id = $_GET['id'];
?>  

<link href="/Includes/Site.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="/Includes/jqgrid/css/jquery-ui.css">
<script src="/Includes/jqgrid/js/jquery-2.1.4.min.js"></script>
<script src="/Includes/jqgrid/css/jquery-ui-1.11.4.min.js"></script>
<script src="/Includes/validation/dist/jquery.validate.min.js"></script>
<script src="/Includes/validation/dist/additional-methods.min.js"></script>

<tr>
    <td><label for="dt<?php echo $id; ?>">Date</label></td>
    <td><input id="dt<?php echo $id; ?>" name="dt<?php echo $id;?>" type="text"></td>
</tr>

var passID = $("input[id^=id]").val();
var dtPkr = "input[id=dt" + passID +"]";

$(dtPkr).datepicker();

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

如果你已经在一个标签中托管了这个activate事件,那么你会想要进入activate事件(在代码中没有看到它,但问题是什么?)。请参阅jQuery UI Tabs Widget文档。

您希望在loadGrid()$(".datepicker").datepicker(); 函数中添加初始化日期选择器的内容:

from django.core.cache import cache
import os

def write_read_test():
    pid = os.getpid()
    cache.set(pid, pid)
    for x in range(5):
        value = cache.get(pid)
        if value != pid:
            print "Unexpected response {} in process {}. Attempt {}/5".format(
                    value, pid, x+1)
    os._exit(0)

cache.set("access cache", "before fork")
for x in range(5):
    if os.fork() == 0:
        write_read_test()

当然,你必须让datepickers成为类datepicker才能工作。请参阅jQuery UI Datepicker文档。