2013-07-18 28 views
1

我正在jQuery手机中实现日期框。我正在使用弹出的日期框,这是工作。当用户使用(+)按钮打开弹出式屏幕时,我需要在文本字段中设置默认日期(当前日期)。如何使用DateBox插件在jQuery mobile中设置日期框中的默认日期?

http://jsfiddle.net/ravi1989/uhdYv/

<div data-role="popup" id="CaseInformationScreen" data-close-btn="none" data-overlay-theme="a" data-dismissible="false"> 
       <div data-role="header" data-theme="b" > 

        <a href="#" data-role="button" data-corners="false" id="Cancel">Cancel</a> 
        <h1>Case Information</h1> 
        <a href="#" data-role="button" data-corners="false" id="AddButton">Add</a> 
       </div> 

       <div data-role="content"> 
        <div><img src="img/Documents.png"/></div> 
        <div data-role="fieldcontain"> 
         <label for="text-12" style="text-align:top;margin-left: 0px;">Case Name:</label> 
         <input name="text-12" id="text-12" value="" type="text" class="caseName_h" > 
        </div> 
        <div data-role="fieldcontain"> 
         <label for="text-12" style="text-align:left;margin-left: 0px;" >Case Date:</label> 
         <!--input name="text-12" id="text-12" value="" type="date" class="caseDate_h" --> 
          <input name="mydate" id="mydate" type="date" data-role="datebox" data-options='{"mode": "datebox", "useNewStyle":true,"zindex":1200}'/> 
        </div> 
        <div data-role="fieldcontain"> 
         <label for="textarea-12">Textarea:</label> 
         <textarea cols="40" rows="8" name="textarea-12" id="text-12" class="caseTextArea_h"></textarea> 
        </div> 
       </div> 
      </div> 
+0

'数据角色= “datebox”'这不是标准的JQM输入类型。你使用日期框插件吗?如果是这样 - 给我们一个名字。 – roody

+0

仅供参考,我认为我是唯一使用“datebox”的人 - jQM-DateBox,http://dev.jtsage.com/jQM-DateBox2/ –

回答

1
To set the Text box's value to current date when the popup opens use this code: 

    1. Change id of the associated label to myDate: 

    <label for="myDate" style="text-align:left;margin-left: 0px;" >Case Date:</label> 

    <input name="mydate" id="mydate" type="date" data-role="datebox" data-options='{"mode": "datebox", "useNewStyle":true,"zindex":1200}'/> 

    2. JQM code: 

    $("#CaseInformationScreen").bind({ 
     popupafteropen: function(event, ui) { 
       var date = new Date(); 

       $('#mydate').trigger('datebox', { 
        'method': 'set', 
        'value': date 
       }).trigger('datebox', { 
        'method': 'doset' 
       }); 


     } 
    }); 
+0

你也可以设置“defaultValue”属性。 –

+0

或者,您可以只设置输入的值 - 但您必须完全匹配datebox设置为使用的输出格式。 –

+0

仅设置默认值将只设置日期框的值,而不是文本框的字段值。为什么你会努力调用新的日期,并将其设置在文本框中,然后匹配格式?它会不会是额外的代码和两个地方来管理,它的简单的每当明天的日期框选项或格式的变化,然后自动我们从日期框中获取确切的价值,并将其设置在文本框中......事实上,大多数情况下文本框只能在这种情况下阅读,以便无论选择何种日期只能通过日期框... – Sheetal

2

如果你使用jQuery的规律。

试试这个

$('#dateElement').datepicker('setDate', new Date()); 

更新

听起来你正在使用DateBox插件。在这种情况下,请在您的data-options中添加"defaultValue", "[2013,1,1]"。它需要一个数组或一个字符串值。

<input name="mydate" id="mydate" type="date" data-role="datebox" data-options='{"defaultValue", "[2013,1,1]", "mode": "datebox", "useNewStyle":true,"zindex":1200}'/> 

如果您想要当前日期,请像这样使用它。

var currentDate = new Date(); 

"defaultValue", "[" + currentDate.getFullYear() + "," + currentDate.getMonth() + "," + currentDate.getDate() + "]" 
+0

但我需要当前日期..不是“[2013, 1,1]“like 17/7/2013 – Rohit

+0

@Rohit检查更新后的答案。 –

1

如果使用DateBox插件,下面应该工作:

<input name="mydate" id="mydate" type="date" data-role="datebox" 
     data-options='{"defaultValue": [2013,7,10]}'> 
0

这两条线应该工作:

var defaultValue = [year, month, day]; 
$(element).datebox({'defaultValue' : defaultValue}); 
相关问题