Отключить кнопку ввода ввода с JS в IE & FF не работает - PullRequest
0 голосов
/ 29 сентября 2011

У меня проблема с отключением кнопки ввода с использованием javascript в документе aspx, т. Е.

JS выглядит как

<script language="javascript" type="text/javascript">
function SetButtonStatus(sender, target) 
{
    if (searchinput.value.length < 4) 
    {
        document.getElementById(target).disabled = true;
    }
    else 
    {
        document.getElementById(target).disabled = false;
    }
}
</script>

Я вызываю кнопку ввода с

<input name="searchinput" type="text" value="" id="searchinput" onkeyup="SetButtonStatus(this, 'searchsubmit')" />

В Chrome все отлично работает. Если я введу более 4 символов в поле ввода, кнопка будет включена. Но в IE & FF ничего не происходит ... Почему? Как я могу это исправить?

Ответы [ 3 ]

2 голосов
/ 29 сентября 2011
<script language="javascript" type="text/javascript">
function SetButtonStatus(sender, target) 
{
    // use document.getElementById("searchinput") instead of searchinput or in your case can use sender 
    document.getElementById(target).disabled = document.getElementById("searchinput").value.length < 4;
}
</script>
2 голосов
/ 29 сентября 2011

Вы зависите от нестандартного «Создайте глобальную переменную для каждого элемента с идентификатором», которое поддерживается Chrome и IE в некоторых режимах рендеринга.

Замените searchinput на sender(поскольку вы определили sender и передали ссылку на интересующий вас элемент).

0 голосов
/ 29 сентября 2011

Почему бы вам просто не использовать jquery, он внутренне обрабатывает все браузеры, и вам не нужно о них беспокоиться. Сделай так:

<input name="searchinput" type="text" value="" id="searchinput"/>
<input type="button" value="button" disabled="true" id="buttonSearch"/>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>  

<script type="text/javascript">

    $(function(){
      $('#searchinput').keydown(function(e){

        var lenght = 3;

        if(e.keyCode ==8)
        {
            lenght = 5;
        }

         if (searchinput.value.length < lenght) 
          {
            $('#buttonSearch').attr("disabled", true);
          }
          else
          {
           $('#buttonSearch').removeAttr('disabled');
          }

       });

    });
</script>
...