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
答
另一种方式,你可以做到这一点是使用jQuery选择元素。 无论多么疯狂的ASP.net使控件的ID,ID字符串的末尾始终是相同的原始ID。
jquery可以基于许多事物来选择元素,其中之一是检查部分ID是否匹配。
代码的外观。
$("[id$='_date_input1']").val("New Value");
扬科描述了这样做的那样,这里的一篇文章:
这工作。 什么是在ASP.NET中处理这种“更好的方式”? 我在问,因为我是网络编程的新手,我更喜欢汇编语言和C/C++。 非常感谢你的回答:) – 2010-03-06 02:30:46
那么使用ASP.NET webforms处理这个从服务器端和使用TextBox的Web控件,你可以处理这很好。不依赖于Javascript。不过,我建议检查一下ASp.NET MVC,因为它更适合客户端开发。 – 2010-03-06 02:37:58
哦,我明白了。事情是,我向你展示的是一个非常小的片段。 这是一段代码,它是JavaScript中完成的日历的一部分,这是相当多的代码。 – 2010-03-06 02:50:37