Mam problem z wyłączeniem przycisku wprowadzania z JavaScript w dokumencie ASPX w IE.

JS wygląda jak

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

Nazywam przyciskiem wejściowym

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

W Chrome wszystko działa dobrze. Jeśli wpiszę więcej niż 4 znaki w Inputfield, przycisk zostanie włączony. Ale w IE & FF Nic się nie dzieje ... dlaczego? Jak mogę to naprawić?

0
Andre Hofmeister 29 wrzesień 2011, 12:59

3 odpowiedzi

Najlepsza odpowiedź

W zależności od niestandardowego "Utwórz zmienną globalną dla każdego elementu, który ma identyfikator", który jest obsługiwany przez Chrome i IE w niektórych trybach renderowania.

Wymień searchinput za pomocą sender (Ponieważ zdefiniowałeś sender i przekazał odniesienie do elementu, który już jesteś zainteresowany).

2
Quentin 29 wrzesień 2011, 10:15
<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
Andrew D. 29 wrzesień 2011, 09:06

Dlaczego po prostu nie użyjesz jQuery, obsługuje wszystkie przeglądarki wewnętrznie i nie musisz się o nich martwić. Zrób to:

<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>
-1
Alexander Beninski 29 wrzesień 2011, 09:34