Как передать идентификатор текстового поля в функцию javascript в приложении asp.net - PullRequest
0 голосов
/ 31 марта 2012

Я разрабатываю приложение, в котором у меня есть форма asp.net с большим количеством текстовых полей. Мне нужно использовать одну и ту же функцию JavaScript для всех текстовых полей, чтобы проверить, содержит ли она какие-либо не алфавитные символы. Как я могуиспользуйте один и тот же метод для всех текстовых полей.Я застрял в том, как я мог бы передать идентификатор текстового поля функции 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.Мне нужно использовать одну и ту же функцию javascript для многих текстовых полей для проверки не алфавитных символов в текстовом поле.Пожалуйста, помогите

Ответы [ 4 ]

1 голос
/ 31 марта 2012

Попробуйте это:

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>
1 голос
/ 31 марта 2012

Правильный подход - внимательно посмотреть на код и посмотреть, что работает на сервере и что работает в браузере (то есть вывести код и пометить в 2 цвета) ...

You onkeydown = "CheckAlphabet (TxtEmpFirstname)" представляет собой смесь намерений на стороне сервера и на стороне клиента: вы должны создать идентификатор клиента с кодом на стороне сервера вместо TxtEmpFirstname и удалить его из самой функции.

onkeydown="CheckAlphabet('<%=textboxId.ClientId %>')" 
0 голосов
/ 31 марта 2012

Вы на правильном пути.Попробуйте что-то вроде этого:

<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.

Также обратите внимание на использование цитаты.Когда вы помещаете встроенную команду на стороне сервера в свойство тега на стороне сервера, вы должны обернуть это свойство одинарными кавычками, а затем использовать двойные кавычки для представления буквенных строк в конечном результате.

0 голосов
/ 31 марта 2012

используйте это:

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 будет жаловаться после компиляции кодов на стороне сервера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...