首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页面回发时清除javascript输入字段

页面回发时清除javascript输入字段
EN

Stack Overflow用户
提问于 2014-03-24 07:05:27
回答 4查看 1.8K关注 0票数 1

我正在使用VB ASP.net和后端作为SQL,因为我必须从日历中选择日期,因为我使用javaScript日历作为客户端编码和其他控件,当页面回发时,我丢失了所选择的日历值,但我必须保留日期,直到单击保存按钮,这里是TextBox输入。

代码语言:javascript
复制
<input name="txtpodate" id="inputField00" type="text"  
                      style="width:28px; font-family:Segoe UI; font-size:14pt; height: 20pt; background-color: #3366FF;" 
                       onclick ="a();" />

我使用过隐藏场,模糊,onFocus事件,但它不起作用,

日历函数是

代码语言:javascript
复制
    <link rel="stylesheet" type="text/css" media="all" href="jsDatePick_ltr.min.css" />

<script type="text/javascript" src="jsDatePick.min.1.3.js" ></script>

 <script type="text/javascript" id ="calender">

        function setCurrentDate() {

            var d = new Date();
            var month = new Array();
            month[0] = "JAN";
            month[1] = "FEB";
            month[2] = "MAR";
            month[3] = "APR";
            month[4] = "MAY";
            month[5] = "JUN";
            month[6] = "JUL";
            month[7] = "AUG";
            month[8] = "SEP";
            month[9] = "OCT";
            month[10] = "NOW";
            month[11] = "DEC";

            var mnth = month[d.getMonth()];
            var convertedStartDate = new Date();
            var day = convertedStartDate.getDate();
            var year = convertedStartDate.getFullYear();
            var shortStartDate = day + "-" + mnth + "-" + year;

           document.getElementById("inputField00").text = shortStartDate;
           document.getElementById("inputField").value = shortStartDate;
           document.getElementById("inputField0").value = shortStartDate;


        }


function a() {

            new JsDatePick({
                useMode: 2,
                target: "inputField00",
                dateFormat: "%d-%M-%Y"


            });

            new JsDatePick({
                useMode: 2,
                target: "inputField",
                dateFormat: "%d-%M-%Y"

            });
            new JsDatePick({
                useMode: 2,
                target: "inputField0",
                dateFormat: "%d-%M-%Y"

            });

            setCurrentDate();

        };


      </script>            
    </asp:Content>

有人能帮我吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-24 08:14:38

按如下所示修改输入标记以添加runat=server

代码语言:javascript
复制
<input runat="server" name="txtpodate" id="inputField00" type="text"  
                      style="width:28px; font-family:Segoe UI; font-size:14pt; height: 20pt; background-color: #3366FF;" 
                       onclick ="a();" />

然后编辑脚本,从输入字段获取新生成的clientID

在……里面

代码语言:javascript
复制
document.getElementById("<%= inputField00.ClientID  %>").text = shortStartDate;

代码语言:javascript
复制
new JsDatePick({
                useMode: 2,
                target: "<%= inputField00.ClientID  %>",
                dateFormat: "%d-%M-%Y"
            });
票数 0
EN

Stack Overflow用户

发布于 2014-03-24 07:24:46

添加runat=“服务器”到您的输入!

票数 1
EN

Stack Overflow用户

发布于 2014-03-24 07:56:35

默认情况下,HTML表单字段在回发后不维护其状态,因为HTTP是无状态的。您可以做的是创建一个隐藏的值(您已经尝试过了),并从C#设置它的值。在您的文档加载的Javascript中,检查隐藏字段是否有值,如果是,将日历设置为它,否则什么也不做。

  1. 在您的.aspx页面中添加一个隐藏字段:
  2. 在代码隐藏中更改此字段的值: 受保护的void Page_Load(对象发送方,EventArgs e) { hidden.Value = CurrentDate;}
  3. 编写以下脚本来访问该值并将其放入任何变量中:
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22602977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档