Thursday, October 25, 2007 - 文章

KB-From Form1 to form1

古早之前寫了一個做表單欄位檢核的JS檔,裡面的第一項工作是先取得Form物件,指定給區域變數:

var defaultFormName = "Form1";
var theForm = document.forms[defaultFormName];

因為VS.NET 2003所建立的ASPX,裡面只會有一個HTML Form,名稱一律預設為Form1,在大部分的情形下,這段Code跟ASPX結合得很好。

後來手上的專案開發多半是將原有ASP.NET 1.1直接升級成ASP.NET 2.0繼續發展,用起來也一直相安無事,直到有同事建了ASP.NET 2.0的新專案,引用這個JS時卻冒出了找不到物件的Error。細究之下,發現了一個天大的祕密...

VS.NET 2003 新增ASPX的表單名稱為Form1
VS 2005新增ASPX的表單名稱為form1

雖然這個不知意義為何的改革讓人很無奈,幸好改起來不算麻煩,如下:

var defaultFormName = "form1";
if (!document.forms[defaultFormName]) defaultFormName="Form1";
var theForm = document.forms[defaultFormName];

PS: form1改在Form1前面是因應未來form1出現的比例會愈來愈高。

Update @ 2007-10-26
剛才又發現一個祕密,document.all("form1")不分大小寫,不論Form1, form1都可以被找到(注意: all()是IE Only),而document.forms[]則遵循Javascript的傳統,會區分大小寫。

搜尋

Go

<October 2007>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
 
RSS
【工商服務】
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


BlogLook Score and Rank

Syndication