表单定义为:
<%@ 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;
...
问题是,没有任何更新,脚本似乎挂起而没有做任何事情。
答案 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在这里的一篇文章中描述了这种方式: