2013-03-04 53 views
0

在我的頁面中,我有一個用戶控件,它將在開關打開時插入jQuery函數。這是我的用戶控件後臺代碼:無法調用後面插入代碼的jquery函數

public bool isRequired { 
    set { 
    if (value == true) { 
     ClientScriptManager cs = Page.ClientScript; 

     string csname = "isRequiredScript"; 
     if (!cs.IsClientScriptBlockRegistered(this.GetType(), csname)) { 
     StringBuilder cstext = new StringBuilder(); 
     cstext.Append("<script type=\"text/javascript\">"); 
     cstext.Append("$(document).ready(function() {"); 
     cstext.Append("function QuestionwithConditionalInfo_validation() {"); 
     cstext.Append("if ($(\"#MainPlaceHolder_" + QuestionOption.ClientID + " :checked\").val() == null) {"); 
     cstext.Append("alert(\"Please answer the question '" + setQuestionText + "'\");"); 
     cstext.Append("return false;"); 
     cstext.Append("}} });"); 
     cstext.Append("</script>"); 
     cs.RegisterClientScriptBlock(this.GetType(), csname, cstext.ToString(), false); 
     } 
    } 
    } 
} 

然後在主網頁,我打算調用jQuery函數:

function childpage_validation() { 
    if (QuestionwithConditionalInfo_validation() == false) 
    return false; 
} 

<asp:Button ID="page1_Next" Text="Next page" runat="server" OnClick="page1_Next_Command" OnClientClick="return childpage_validation()" /> 

然後我得到了錯誤說功能QuestionwithConditionalInfo_validation()沒有定義之後,我嘗試了RegisterStartupScript而不是RegisterClientScriptBlock,它得到了相同的錯誤。有誰知道爲什麼?

+3

將它從文檔中取出,否則它不是全局的,因此無法從其他腳本訪問。 – 2013-03-04 19:12:03

+0

另外,爲什麼你不只是'返回QuestionwithConditionalInfo_validation()'而不是檢查它是真是假? – 2013-03-04 19:20:41

回答

1

瞭解文檔就緒只需要允許它在該事件期間執行 - 它確實是一個事件處理程序。如你不需要說(事件已經發生),你可以從你的代碼中刪除:

cstext.Append("<script type=\"text/javascript\">"); 
cstext.Append("function QuestionwithConditionalInfo_validation() {"); 
cstext.Append("if ($(\"#MainPlaceHolder_" + QuestionOption.ClientID + " :checked\").val() == null) {"); 
cstext.Append("alert(\"Please answer the question '" + setQuestionText + "'\");"); 
cstext.Append("return false;"); 
cstext.Append("}};"); 
cstext.Append("</script>"); 

還通過刪除,刪除其關閉,以它現在是一個全局對象,可以從訪問頁面,表達你的願望。

相關問題