Не могу найти asp: текстовое поле в Javascript - PullRequest
3 голосов
/ 09 июня 2010

Я пытаюсь добавить атрибут onkeydown в текстовое поле asp :.По какой-то причине мой код не может найти текстовое поле внутри логина.

Я что-то не так делаю?

Ответы [ 3 ]

1 голос
/ 09 июня 2010

Ваш код пытается добавить атрибуты обработчика событий в клиентский скрипт. Это должно происходить в блоке кода на стороне сервера. Что-то вроде:

<script runat="server"> 
    UserName.Attributes.Add("onKeyDown", "KeyDownHandler('" + btn.ClientID + "')"); 
    Password.Attributes.Add("onKeyDown", "KeyDownHandler('" + btn.ClientID + "')"); 
</script>
<script type="text/javascript">
function KeyDownHandler(btn) 
{ 
    if (event.keyCode == 13) 
    { 
        event.returnValue=false;     
        event.cancel = true; 
        document.getElementById(btn).click(); 
    } 
} 
</script> 

В качестве альтернативы, если у вас есть страница с выделенным кодом, добавьте атрибут. Добавьте вызовы в событие PreRender.

0 голосов
/ 09 июня 2010

В вашем aspx-файле добавьте серверный сценарий, который будет связывать существующие текстовые поля UserName и Password с обработчиком событий клиента с именем KeyDownHandler:

<script runat="server">
   protected void Page_Load(object sender, EventArgs e)
   {
      TextBox userNameControl = FindControl("UserName") as TextBox;
      TextBox passwordControl = FindControl("Password") as TextBox;

      if (userNameControl != null)
         userNameControl.Attributes.Add("onKeyDown", "KeyDownHandler(this)"); 

      if (passwordControl != null)
         passwordControl.Attributes.Add("onKeyDown", "KeyDownHandler(this)"); 
   }
</script>

Затем объявите клиентский сценарий обработчика событий:

<script type="text/javascript">
function KeyDownHandler(domButton) 
{ 
    if (event.keyCode == 13) 
    { 
        event.returnValue=false;     
        event.cancel = true; 
        domButton.click(); 
    } 
} 
</script>
0 голосов
/ 09 июня 2010

Попробуйте подключить параметр обработчика событий следующим образом:

<script type="text/javascript">
    window.onload = function() {
    UserName.Attributes.Add("onKeyDown", "KeyDownHandler(this)");
    Password.Attributes.Add("onKeyDown", "KeyDownHandler(this)");
}

function KeyDownHandler(domButton)
{
    if (event.keyCode == 13)
    {
        event.returnValue=false;    
        event.cancel = true;
        domButton.click();
    }
}
</script>
...