2010-11-10 89 views
0

我想讓Javascript彈出日曆控制工作不工作。我得到javascript日曆彈出不起作用

錯誤「Microsoft JScript運行時錯誤:'window.opener.document.forms(...)。控件'爲空或不是對象」。這裏是我的情況下,

protected void Change_Date(System.Object sender, System.EventArgs e) 
{ 
    string strScript = "<script>window.opener.document.forms(0)." + control.ClientID + ".value = '"; 
     strScript += calDate.SelectedDate.ToString("MM/dd/yyyy"); 
     strScript += "';self.close()"; 
     strScript += "</" + "script>"; 

     ClientScript.RegisterClientScriptBlock(this.GetType(), "Startup", strScript); 
} 

它顯示的日曆罰款,但是當我點擊日期,我得到的錯誤,日期被插入文本框。

回答

1

錯誤的括號:

.document.forms(0) 

應該

.document.forms[0] 
+0

嗨,謝謝你的回覆。我也嘗試過,但仍然出現錯誤。現在它說,「Microsoft JScript運行時錯誤:'window.opener.document.forms.0.control'爲空或不是對象」。 – Tony 2010-11-10 20:22:53

+0

然後'control.ClientID'沒有被轉換成實際的表單元素名稱。你需要相當於:'<%= control.ClientID%>' - 希望別人能幫忙。 – scunliffe 2010-11-10 20:35:42

+0

我認爲問題與內容頁面有關。我正在使用母版頁。此示例的父頁面是其中一個內容頁面。我拿出內容頁面並製作一個常規頁面,它工作正常。但是,我不確定如何使用Master/Content頁面來實現這一點。 – Tony 2010-11-10 22:32:38

0

你真的有你的表格ID 「控制」 的元素?這裏

你的線是錯誤的:

string strScript = "<script>window.opener.document.forms(0)." + control.ClientID + ".value = '"; 

正如已經指出它應該是forms[0]而不是forms(0)但隨後正在搜索的形式ID爲「控制」

元素看起來像你的control.ClientID值返回錯誤,找出它應該是什麼的最簡單方法是查看窗體的實際HTML並找到你正在尋找的控件的id,然後用它測試你的方法,然後找出爲什麼control.ClientID沒有返回現有的v ALUE。