2012-03-31 28 views
0

我正在開發一個應用程序,其中我有一個帶有大量文本框的asp.net窗體。我需要對所有文本框使用相同的JavaScript函數驗證它是否包含任何非字母字符。如何對所有文本框使用相同的方法。我被困在如何將文本框的id傳遞給JavaScript函數?如何將文本框ID傳遞給asp.net應用程序中的javascript函數

<script type="text/javascript" language="JavaScript"> 
     function CheckAlphabet(textboxId) 
{ 
if (!document.getElementById('<%=textboxId.ClientId %>').value.match("/^[a-zA-Z]+/")) 
return false; 
} 
</script> 

asp.net代碼的部分是這樣的....

<asp:TextBox CssClass="select" ID="TxtEmpFirstname" onkeydown="CheckAlphabet(TxtEmpFirstname)" 
          runat="server" MaxLength="100"></asp:TextBox> 

的JavaScript代碼給了一個錯誤。請幫助傳遞asp.net文本框的id。我需要爲許多文本框使用相同的JavaScript函數來驗證文本框中的非字母字符。請幫助

+0

的建議,沒有工作......工作的唯一方法是使用JavaScript函數沒有參數。我的問題是我如何使用相同的功能來驗證許多文本框?我應該每次都寫下整個函數嗎? – 2012-03-31 09:03:39

回答

1

正確的方法是仔細看一下代碼,看看有什麼在服務器上運行,什麼在瀏覽器中運行(即打印2種顏色的代碼和標記)...

您的onkeydown =「CheckAlphabet( TxtEmpFirstname)「是服務器端和客戶端意圖的混合:您應該使用服務器端代碼而不是TxtEmpFirstname構建客戶端ID,並將其從函數本身中移除。

onkeydown="CheckAlphabet('<%=textboxId.ClientId %>')" 
+0

這些建議沒有奏效......唯一可行的方法是使用不帶參數的javascript函數。我的問題是我如何使用相同的功能來驗證許多文本框?我應該每次都寫下整個函數嗎? – 2012-03-31 09:05:45

-1

使用本:

function CheckAlphabet(textboxId) 
{ 
    if (!document.getElementById(textboxId).value.match("/^[a-zA-Z]+/")) 
    return false; 
} 

<asp:TextBox CssClass="select" ID="TxtEmpFirstname" onkeydown="CheckAlphabet(this.value)" runat="server" MaxLength="100"></asp:TextBox> 

JavaScript代碼後,將服務器端的代碼被編譯抱怨

0

你在正確的軌道上。試試這樣:

<script type="text/javascript" language="JavaScript"> 
    function CheckAlphabet(textboxId){ 
     if (!document.getElementById(textboxId).value.match("/^[a-zA-Z]+/")) return false; 
    } 
</script> 


<asp:TextBox CssClass="select" ID="TxtEmpFirstname" onkeydown='CheckAlphabet("<%=TxtEmpFirstname.ClientId %>")' runat="server" MaxLength="100"></asp:TextBox> 

請注意,客戶端腳本只引用傳遞給它的變量的內容。當TextBox呈現給頁面時,內聯標記(<%=...%>)將被轉換爲input字段的客戶端標識。

另請注意報價用法。將內聯服務器端命令放入服務器端標記的屬性中時,必須用單引號包裝該屬性,然後使用雙引號表示最終輸出中的文字字符串。

1

試試這個:

function CheckAlphabet(textboxId) 
{ 
    if (!textboxId.value.match("/^[a-zA-Z]+/")) 
    return false; 
} 

<asp:TextBox CssClass="select" ID="TxtEmpFirstname" onkeydown="javascript:CheckAlphabet(this)" runat="server" MaxLength="100"></asp:TextBox> 
相關問題