2013-08-28 117 views
1

使用JQuery和ASP.Net C#3.0。JQuery DatePicker多输入

我有以下脚本:

<script> 
    $(document).ready(function() { 
     $("[id$=txtHiddenDate]").datepicker({ 
      showOn: "button", 
      buttonImage: "../../images/calendar-icon.gif", 
      buttonImageOnly: true 
     }); 
    }); 
</script> 

有一日月和年3个独立的字段(txtDay,txtMonth,txtYear) 如何日期返回到这些3个独立的领域?

非常感谢!

编辑:我也想保持隐藏字段藏汉

+0

为什么你想有一个隐藏的日期选择器?只需在日期中使用隐藏文本字段或显示日期选择器即可。 –

回答

1

HTML

设置了其他输入举行日期的碎片。你可能想让这些隐藏起来。

<input id="picker"/><br> 
Day: 
<input id="day"/><br> 
Month: 
<input id="month"/><br> 
Year: 
<input id="year"/> 

的Javascript

指定一个onSelect功能解析不同件的日期,并将其分配给相应的输入端。

$(document).ready(function() { 
     $("#picker").datepicker({ 
      showOn: "button", 
      buttonImage: "../../images/calendar-icon.gif", 
      buttonImageOnly: true, 
      onSelect: function(strDate){ 
      var tokens = strDate.split("/"); 
       $("#day").val(tokens[1]); 
       $("#month").val(tokens[0]); 
       $("#year").val(tokens[2]); 

      } 
     }); 
    }); 

JS小提琴:http://jsfiddle.net/9Ww8g/

+0

完美的答案,我即将开始使用C#背后的代码(是的,我尽量不要触摸JQuery,因为它不是我的区域)很好,很简单! – lemunk

0

你应该应用在一个正常的文本框中的日期选择器。你不能在隐藏的领域或三个不同的领域。

因为它是一个文本框,在服务器端(在你的代码隐藏中),你只有一个字符串。使用[DateTime.Parse][1],[DateTime.TryParse][2],[DateTime.ParseExact][3]或获取选定的日期。

如果你想在某一格式与hiddenField工作,并把它(这样你就可以分析得知格式),可以使用altFieldaltFormat

$("#myTextBox").datepicker({ 
    altField: "#myHiddenField", 
    altFormat: "yy-mm-dd" 
}); 

如果它是一个ASP.NET hiddenfield ,你可能想使用以下的选择:

altField: "input[id$=myHiddenField]" 

,因为在你的JavaScript,你可以不知道实际的ID ASP.NET会生成(除非你建立你的JavaScript代码隐藏)。