1

使用 JQuery 和 ASP.Net C#3.0。

我有以下脚本:

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

日月和年有 3 个单独的字段。(txtDay, txtMonth, txtYear) 如何将日期返回到这 3 个单独的字段?

非常感谢!

编辑:我也想保留隐藏字段

4

2 回答 2

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/

于 2013-08-28T09:05:15.243 回答
0

您应该在普通文本框上应用日期选择器。您不能将它放在隐藏字段或三个不同的字段上。

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

如果您想使用hiddenField并以某种格式使用它(这样您就可以解析知道格式),您可以使用altFieldand altFormat

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

如果它是 ASP.NET 隐藏字段,您可能需要使用以下选择器:

altField: "input[id$=myHiddenField]"

因为在您的 javascript 中,您无法知道 ASP.NET 将生成的实际 id(除非您在代码隐藏中构建您的 javascript)。

于 2013-08-28T09:02:28.230 回答