【问题标题】:keep input dates in text boxes through jquery Date picker通过jquery日期选择器将输入日期保留在文本框中
【发布时间】:2017-07-26 05:15:14
【问题描述】:

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

<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());

    });
});

【问题讨论】:

  • 显示一些代码..
  • @Saif 编辑了我的问题

标签: jquery asp.net datepicker


【解决方案1】:

这里的问题是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());

      });
    });

【讨论】:

  • 感谢您的回复。但很抱歉,它没有用。其设置当前日期。我已经将 html 更改为 asp 控件,即使在更改 jquery 函数之后,它也会设置当前日期。你能建议其他的吗?我会很感激的
  • $("[id$='txtstartDate']").datepicker().datepicker("setDate", new Date()); 这是设置当前日期。为什么需要这些行?
  • 要求默认值为当前日期。如果有人想选择不同的日期,他将能够从日期选择器中选择不同的日期。
  • 它确实保留了值,但在获得报告后,如果我再次点击输入字段 datepicker 不会弹出
  • 你在哪里初始化数据选择器?
【解决方案2】:

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

<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" />

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

 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");
        }
    }

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

<script>
    $(document).ready(function () {
        $("[id$='txtstartDate']").datepicker();
        $("[id$='txtFinishDate']").datepicker();
    });


</script>

这就是我想出解决方案的方法。希望它可能对其他人有所帮助。

【讨论】:

  • 除了你设置默认日期时间服务器端之外,它和我的代码不一样吗?
  • 是的,这就是重点,而不是在 jquery 中初始化日期,我现在正在服务器端进行初始化。
猜你喜欢
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
相关资源
最近更新 更多