在IE&中禁用带有js的输入提交按钮FF不起作用

时间:2011-09-29 08:59:04

标签: javascript button status

我遇到了一个问题,在asx文件中禁用带有javascript的输入按钮。

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&amp; FF什么都没发生......为什么?我怎么能解决这个问题?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

<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 :(得分:-1)

为什么不使用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>