JavaScript没有一些奇怪的原因

问题描述:

更新输入字段的值的形式被定义为:JavaScript没有一些奇怪的原因

<%@ 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; 

....

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

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

你可以这样做,但它会将'date_input1'控件更改为服务器端控件,这也不起作用。

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

说实话,有更好的方式来处理这种特征在ASP.NET

+0

这工作。 什么是在ASP.NET中处理这种“更好的方式”? 我在问,因为我是网络编程的新手,我更喜欢汇编语言和C/C++。 非常感谢你的回答:) – 2010-03-06 02:30:46

+0

那么使用ASP.NET webforms处理这个从服务器端和使用TextBox的Web控件,你可以处理这很好。不依赖于Javascript。不过,我建议检查一下ASp.NET MVC,因为它更适合客户端开发。 – 2010-03-06 02:37:58

+0

哦,我明白了。事情是,我向你展示的是一个非常小的片段。 这是一段代码,它是JavaScript中完成的日历的一部分,这是相当多的代码。 – 2010-03-06 02:50:37

另一种方式,你可以做到这一点是使用jQuery选择元素。 无论多么疯狂的ASP.net使控件的ID,ID字符串的末尾始终是相同的原始ID。

jquery可以基于许多事物来选择元素,其中之一是检查部分ID是否匹配。

代码的外观。

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

扬科描述了这样做的那样,这里的一篇文章:

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