2012-07-31 36 views
0

我有一個javascript函數如下:無法調用參數化的JavaScript函數在我的網頁加載

function textCounter(field, rem, maxlimit) { 
     if (field.value.length > maxlimit) 
      field.value = field.value.substring(0, maxlimit); 
     else 
      rem.value = maxlimit - field.value.length; 
    } 

在這裏,我想在一個字符串的長度的基礎上,一個文本框(REM)設定值在另一個多行文本框(字段)中。 在我的網頁加載我想調用它,如下圖所示:

this.Page.ClientScript.RegisterStartupScript(this.GetType(), "testFunction", "textCounter(txtRemark," + txtRemarksRem.ClientID + ", '2000')", true); 

但它似乎並沒有工作。 我在這裏做錯了什麼。

我想解決的問題是多線文本框的onkey up和keydown屬性我能夠調用該函數並在計數器文本框(rem)中設置正確的值,但在頁面加載時,其值再次設置爲默認值。 如果有其他解決方案,請提出建議。

txtRemark.Attributes.Add("onKeyUp", "textCounter(this," + txtRemarksRem.ClientID + ", '2000')"); 
     txtRemark.Attributes.Add("onkeydown", "textCounter(this," + txtRemarksRem.ClientID + ", '2000')"); 

上面的代碼似乎好工作(設置在KEYUP或向下計數器的值。

回答

0

你要通過這兩個文本框(REM)和文本框(場)的客戶端ID,如果事件沒有連接到它。

this.Page.ClientScript.RegisterStartupScript(this.GetType(), "testFunction", "textCounter(" + txtRemark.ClientID + "," + txtRemarksRem.ClientID + ", '2000')", true); 

然後在你的JS功能

function textCounter(f, r, maxlimit) { 
     //get the refernce of both element in dom by their client id 
     var field = document.getElementById(f); 
     var rem = document.getElementById(r); 
     //now this code would run correctly 
     if (field.value.length > maxlimit) 
      field.value = field.value.substring(0, maxlimit); 
     else 
      rem.value = maxlimit - field.value.length; 
    } 
+0

我也做了同樣.Still櫃檯文本框是RESE雖然數據已輸入到多行文本框中,但在某些活動中頁面加載時可以達到最大值。只要我們單擊那裏,鍵入或鍵下來似乎被調用並且計數器值設置爲正確的值。 – 2012-07-31 13:24:04

+0

無法找到clientID。 – 2012-07-31 14:05:30

+0

嗯,我想我沒有正確地解決您的問題。讓我重新看看你的問題是什麼 – Anand 2012-07-31 14:58:38

相關問題