由于某些奇怪的原因,JavaScript不会更新输入字段的值

时间:2010-03-06 02:18:47

标签: asp.net javascript asp.net-ajax

表单定义为:

<%@ Page Language="C#" MasterPageFile="~/MasterPage1.Master" AutoEventWireup="true"
    CodeBehind="Search.aspx.cs" Inherits="Invoices.Search" Title="Search Page" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <form id="LoginForm1" method="post" runat="server">

...

这就是我想要做的事情:

...

 <input id="date_input1" readOnly type="text" size="6" name="date_input1">
        <script language="JavaScript" type="text/javascript">
        <!--


  document.forms['LoginForm1'].date_input1.value = month + '/' + date  + '/' + year;

...

问题是,没有任何更新,脚本似乎挂起而没有做任何事情。

2 个答案:

答案 0 :(得分:1)

LoginForm1的ID不是客户端ID,因为你有runat =“server”。

你可以这么做,但是你将'date_input1'控件更改为服务器端控件,这也无法正常工作。

document.forms[0].date_input1.value = month + '/' + date  + '/' + year;

老实说,有更好的方法可以在ASP.NET中处理这种功能

答案 1 :(得分:1)

你可以做的另一种方法是使用Jquery来选择元素。 无论ASP.net多么疯狂地制作控件的ID,原始ID在ID字符串的末尾总是相同的。

Jquery可以根据很多东西选择元素,其中一个是检查部分ID以进行匹配。

您的代码看起来如何。

$("[id$='_date_input1']").val("New Value");

Janko在这里的一篇文章中描述了这种方式:

http://www.jankoatwarpspeed.com/post/2009/01/08/Select-ASPNET-server-controls-easily-with-jQuery.aspx