通过jquery日期选择器将输入日期保留在文本框中

时间:2017-03-06 11:00:20

标签: jquery asp.net datepicker

我想在获取报告后在文本字段中保留值。文本框具有默认的当前日期,但可以通过jquery datepicker分配新值。所以当我选择一个日期(例如2015年10月27日)时,它应该在获得报告后保留在文本框中。问题是我搜索记录值重置为当前日期。有人可以帮忙吗?

<input runat="server" id="txtstartDate" type="text"   />
<input runat="server" id="txtFinishDate" type="text"  />

JQuery的

<script>
$(document).ready(function () {

    $(function () {
        $("#txtstartDate").datepicker().datepicker("setDate", new Date());
        $("#txtFinishDate").datepicker().datepicker("setDate", new Date());

    });
});

2 个答案:

答案 0 :(得分:0)

这里的问题是ViewState。它会在回发后检索您的值。在生成报告时,您正在发布这些值,但由于您使用了html控件,因此无法将其返回。您应该使用Asp.Net控件来利用ViewState。你只需要改变

<input runat="server" id="txtstartDate" type="text"   />
<input runat="server" id="txtFinishDate" type="text"  />

<asp:TextBox runat="server" ID="txtstartDate" />
<asp:TextBox runat="server" ID="txtFinishDate" />

$(document).ready(function () {

    $(function () {
        $("#txtstartDate").datepicker().datepicker("setDate", new Date());
        $("#txtFinishDate").datepicker().datepicker("setDate", new Date());

    });
});

通过

$(document).ready(function () {

    $(function () {
        if($("[id$='txtstartDate']").val() == "")
            $("[id$='txtstartDate']").datepicker().datepicker("setDate", new Date());
        if($("[id$='txtFinishDate']").val() == "")
            $("[id$='txtFinishDate']").datepicker().datepicker("setDate", new Date());

      });
    });

答案 1 :(得分:0)

是的,我正在回答我自己的问题。因此,根据我的要求,我必须将当前日期填充为默认值,并且必须从datepicker中选择日期。并且我必须在获得报告后保留价值。所以,首先我改变了

string

<input runat="server" id="txtstartDate" type="text"   />
<input runat="server" id="txtFinishDate" type="text"  />

然后在页面加载时填充这些文本框

<asp:TextBox runat="server" ID="txtstartDate" />
<asp:TextBox runat="server" ID="txtFinishDate" />

在jquery中我只是为这两个文件定义了datepicker。

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack )
        { 
            txtstartDate.Text =   DateTime.Today.Date.ToString("dd/MM/yyyy");
            txtFinishDate.Text = DateTime.Today.Date.ToString("dd/MM/yyyy");
        }
    }

这就是我找出解决方案的方法。希望它对其他任何人都有帮助。