更改jQuery Mobile日期选择器选项

时间:2011-05-05 13:32:20

标签: datepicker jquery-mobile

我正在使用jQuery Mobile日期选择器控件,但我无法更改任何属性。例如,以下代码将尝试在文档就绪函数中将星期的第一天设置为星期三,但它不起作用。

<!DOCTYPE html> 
<html> 
    <head> 
        <title>Test</title> 
        <link rel="stylesheet" href="jquery.mobile-1.0a4.1.min.css" />
        <link rel="stylesheet" href="jquery.ui.datepicker.mobile.css" /> 
        <script type="text/javascript" src="jquery-1.5.2.min.js"></script>
        <script type="text/javascript" src="jquery.mobile-1.0a4.1.min.js"></script>
        <script src="jquery.ui.datepicker.js"></script>
        <script src="jquery.ui.datepicker.mobile.js"></script>

        <script> 
        $(document).ready(function()
        {
            $("#date").datepicker({ firstDay: 3 });
        });
        </script>       
    </head> 
    <body>
    <div data-role="page" data-theme="b" id="home">
        <div data-role="header">
            <h1>Test</h1>
        </div>
        <div data-role="content" data-theme="b">
            <div data-role="fieldcontain">
                <input type="date" name="date" id="date" value="" />
            </div>
        </div>
    </div>
    </body>
</html>

任何想法我做错了什么?这是否失败,因为日期选择器已经显示?

4 个答案:

答案 0 :(得分:1)

我已设法通过更改“jquery.ui.datepicker.mobile.js”文件来更改属性

将日期格式更改为:“dd / mm / yy”代码如下所示

//bind to pagecreate to automatically enhance date inputs   
$( ".ui-page" ).live( "pagecreate", function(){     
    $( "input[type='date'], input[data-type='date']" ).each(function(){
        $(this).after($("<div />").datepicker({ altField: "#" + $(this).attr("id"), showOtherMonths: true, dateFormat: "dd/mm/yy" }));
    }); 
});

答案 1 :(得分:0)

如果您尝试使用其他设置器会发生什么?

$('.selector').datepicker('option', 'firstDay', 1);

答案 2 :(得分:0)

你错过了bind()

  //reset type=date inputs to text
  $( document ).bind( "mobileinit", function(){
      $.mobile.page.prototype.options.degradeInputs.date = true;
  });

文档(位于页面底部):http://jquerymobile.com/demos/1.0a4.1/experiments/ui-datepicker/

此外,我更喜欢DateBox更好的IMO:http://dev.jtsage.com/jQM-DateBox/

答案 3 :(得分:0)

我有类似的问题,不得不在jquery.ui.datepicker.mobile.js中更改两行

首先,我需要将调用的返回值存储到prevDp(第18行)。

var value = prevDp.call( this, options );

然后我不得不返回这个值而不是这个(第46行)

return value;

现在你应该可以用Matt Ball建议的选项调用datepicker。