【问题标题】:Keep losing date when form is submitted提交表单时丢失日期
【发布时间】:2013-07-02 06:21:27
【问题描述】:

我的asp.net 表单上有一个jQuery 日期选择器。一切似乎都工作正常,除了当我提交表单时,选择的日期从文本框中丢失,.net 代码给我一个错误,因为日期丢失。

有人知道为什么会这样吗?

当我从文本框中删除 readonly=true 时它开始工作,但我需要它是只读的以防止用户错误地输入日期。


根据要求提供一些代码/脚本:

HTML:

<form id="form1" runat="server">
    <asp:TextBox id="txtDate" Runat="server" readonly="true" />
    <asp:Button ID="btnSendRequest" text="Send Request" Runat="server" OnClick="btnSendRequest_Click" />
</form>

jQuery:

$("#txtDate").datepicker({
    dateFormat: "dd/mm/yy"
});

.NET:

Sub btnSendRequest_Click(ByVal Sender As Object, ByVal E As EventArgs)
    objSQLCommand = New SqlCommand("insert query here", objConnection)

    'parameters here

    Try
        objSQLCommand.Connection.Open()
        objSQLCommand.ExecuteNonQuery()
        objSQLCommand.Connection.Close()
    Catch Ex As Exception
        ' some error here
    End Try
End Sub

【问题讨论】:

  • 请贴一些html代码
  • 如何提交表单?贴出相关代码!
  • 显然有人因为一个完全合理的问题而给我 -1 的问题带来了糟糕的一天...... ;)

标签: jquery asp.net .net-3.5 asp.net-3.5 jquery-ui-datepicker


【解决方案1】:

第一个问题是这样的

$("#<%=txtDate.ClientID%>").datepicker({
   dateFormat: "dd/mm/yy"
});

将客户端 ID 添加到 txtDate

【讨论】:

    【解决方案2】:

    如果设置了只读标志,.Net 将无法获取该值。您需要删除它才能使其正常工作。我不确定 enabled = false 是否会给你同样的问题,但我个人会停止通过 jquery 进行用户交互,因为无论如何你都在使用它。

    或者您可以在代码隐藏中添加一个只读属性,这有时会起作用并且允许 .net 仍然读取该值:

    txtYourTextBox.Attributes.Add("readonly", "readonly");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2018-04-16
      • 1970-01-01
      • 2012-08-16
      • 2016-03-21
      • 2012-06-29
      • 2016-04-15
      相关资源
      最近更新 更多