2013-10-09 50 views
-2

我試圖在Sharepoint的Web部件的工具部分上應用Java腳本,以限制用戶輸入除數字以外的任何字符。我找到了一個合適的腳本this link如何將腳本應用於Web部件的工具部分?

我可以在頁面上看到腳本已經在這裏註冊,我試圖找出火災bug,但它不顯示任何Java腳本錯誤。請幫我知道我可能犯了什麼愚蠢的錯誤。

以下是我對toolpart.cs代碼

protected override void OnPreRender(EventArgs e) 
{ 
    StringBuilder str = new StringBuilder("<script type='text/javascript'>"); 
    str.Append("$(document).ready(function() {$('#_txtHeight').keydown(function(event){"); 
    str.Append("if (event.keyCode == 46 || event.keyCode == 8) {}else {"); 
    str.Append("if (event.keyCode < 48 || event.keyCode > 57) {event.preventDefault();}}});});"); 
    str.Append("</script>"); 

    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "MyChartViewerToolPart" + this.ID, str.ToString()); 

    if (!string.IsNullOrEmpty(errorMessage)) 
    { 
     this.Zone.ErrorText = string.Format(
      "{0}Changes cannot be saved due to one or more errors in input. {1}", 
      this.Zone.ErrorText, errorMessage); 
    } 
    base.OnPreRender(e); 
} 

_txtHeight是在同一個頁面上的方法CreateChildControls()在代碼中創建我的後面的文本框的ID。

回答

1

將jQuery選擇器替換爲$("[id$='_txtHeight']") as asp.net 3.5,並且更早版本會爲該id添加前綴。另外,如果你想使用的ID選擇,您可以在OnPreRender訪問控制屬性,你可以使用:

str.AppendFormat("$(document).ready(function() {{$('#{0}').keydown(function(event){{" control.ClientID); 

注意事項使用AppendFormat花括號時,必須通過他們,例如加倍轉義{{and}}

相關問題