表单定义为:
<%@ 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;
……
问题是,什么都没有更新,脚本似乎挂起了,什么也不做。
发布于 2010-03-06 02:23:42
服务器的ID不是客户端的id,因为您有runat=“LoginForm1”。
你可以这样做,但是如果你把“date_input1”控件改成了服务器端的控件,这也不会起作用。
document.forms[0].date_input1.value = month + '/' + date + '/' + year;
老实说,在ASP.NET中有更好的方法来处理这类特性
发布于 2010-03-06 02:50:35
另一种方法是使用Jquery选择元素。无论ASP.net将控件的ID弄得多么疯狂,在ID字符串的末尾,原始ID始终是相同的。
Jquery可以根据很多东西来选择元素,其中之一是检查ID的一部分是否匹配。
你的代码看起来会是什么样子。
$("[id$='_date_input1']").val("New Value");
Janko在这里的一篇文章中描述了这种方法:
https://stackoverflow.com/questions/2391117
复制