jquery datepicker月/年混乱

时间:2013-05-23 13:33:27

标签: jquery html jquery-ui jsp datepicker

我正在使用jquery datepicker,但是当日历弹出窗口显示时,月份和年份文本在日历标题栏的最右侧是乱七八糟的混乱。

我和css玩了一下,但坦率地说,我没有太多时间玩它。

任何帮助都会非常感激。

我会发布问题的图片,但是在我获得10点声望(?)之前,我不会允许我使用。

HTML:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>ADC Visitor Log</title>
        <link href="http://code.jquery.com/ui/1.8.16/themes/redmond/jquery-ui.css" rel="stylesheet">
        <!--link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /-->
        <style type="text/css">
            textarea{
                font: bold;
            }
        @media print {
            @page         { zoom: 93% }
        }
        div.footer { position: relative; }
        div > span { position: absolute; right: 0; bottom: 0; }
        .ui-datepicker {  
            width: 216px;  
            height: auto;  
            margin: 5px auto 0;  
            text-align: left;
            font: 9pt Arial, sans-serif;  
            -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, .5);  
            -moz-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, .5);  
            box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, .5);  
        }
        .ui-datepicker-title {  
text-align: center;  
}
   </style>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/ui/1.8.16/jquery-ui.min.js"></script>
    <!--script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script-->
    <script>
        $(function() {
            $( "#datepicker" ).datepicker();
        });

        function formSubmit(val){
            var dp = document.getElementById("datepicker").value;
            var fp = document.getElementById("floor").value;
            var op = document.getElementById("officer").value;
            if(!dp.length==0){
                if(!fp.length==0){
                    if(!op.length==0){
                        //alert("still made it thru");
                        document.getElementById("frm1").action = "VL2";
                        document.getElementById("frm1").method = "POST";
                        document.getElementById("frm1").submit();

                    }
                }
            }
        }
    </script>
</head>
<body>
    <h1 align="center">VISITOR LOG</h1>
    <br>
    <br>
    <div align="center">
        <h3>Please set visitor log data:</h3>
        <br>
        <br>
        <form id="frm1" action="VL2" method="POST">
            <div style="background-color: gray">
                <table>
                    <tr style="width: 100%">
                        <td width="33%" align="center">
                            <label>Floor: &nbsp;&nbsp;
                                <select style="vertical-align: center;" name="floor" id="floor">
                                    <option>Select Floor</option>
                                    <option value="2nd">2nd</option>
                                    <option value="4th">4th</option>
                                    <option value="6th">6th</option>
                                </select>
                                </div>
                        </td>
                        <td><input type="hidden" name="type" value="initial" size="0" /></td>
                        <td width="33%" align="center">
                            Date: &nbsp;&nbsp;<input type="text" 
                                                     name="datepicker" id="datepicker" 
                                                     style="background-color: #f5ffff; border: none;"/>
                        </td>
                        <td width="33%" align="center">
                            <label>Officer: &nbsp;&nbsp;
                                <input name="officer" id="officer" size="40"
                                       style="background-color: #f5ffff; border: none;"/>
                        </td>
                    </tr>
                </table>
            </div>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <br>
            <div style="width: 100%; height: 30%; vertical-align: middle">
                <input align="center" type="button" onclick="formSubmit()" value="Submit">
            </div>
        </form>
    </div>

</body>

2 个答案:

答案 0 :(得分:0)

正是这一系列的CSS导致了你的问题:

    div > span { position: absolute; right: 0; bottom: 0; }

删除此项并再次正确显示日历。

您的选择器目前过于通用(因此它会占据div的直接子节点的每个范围),并且应该重写以更具体地针对您的预期用途。

请参阅此处删除的CSS行:http://jsfiddle.net/YkdZ4/1/

看起来你正在使用该线将灰色条中的所有内容对齐到底部,这是正确的吗?既然你正在使用一个表,你可以在父单元格上使用valign =“bottom”来获得你所追求的效果,而不需要上面包含无所不包的CSS行。

在此虚构中查看更新后的HTML标记(以及删除的CSS行):http://jsfiddle.net/YkdZ4/2/

答案 1 :(得分:0)

从代码下方移除位置:绝对

div > span { position: absolute; right: 0; bottom: 0; }