在IE中使用js禁用输入提交按钮FF并不# 39;工作

Disable input submit button with js in IE & FF doesnt' work

本文关键字:FF 并不 工作 按钮 输入 IE js 提交      更新时间:2023-09-26

我有一个问题,在ie的aspx文档中禁用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中;FF什么都没发生…为什么?我怎样才能解决这个问题?

你依赖于非标准的"为每个有id的元素创建一个全局变量",这是由Chrome和IE在某些渲染模式下支持的。

searchinput替换为sender(因为您已经定义了sender并传递了对您已经感兴趣的元素的引用)

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

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