首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果输入字段为空,则禁用提交按钮

如果输入字段为空,则禁用提交按钮
EN

Stack Overflow用户
提问于 2013-07-17 19:52:59
回答 5查看 111.9K关注 0票数 26

如果用户没有提供任何文本,我正在尝试禁用提交按钮。

乍一看,一切都很正常,但如果用户键入一些文本,然后将其删除,提交按钮就会启用。

下面是我的代码:

代码语言:javascript
运行
复制
$(document).ready(function(){
    $('.sendButton').attr('disabled',true);
    $('#message').keyup(function(){
        if($(this).val.length !=0){
            $('.sendButton').attr('disabled', false);
        }
    })
});
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-07-17 19:54:21

你只在document.ready上禁用,当DOM准备就绪时,这只会发生一次,但当textbox为空时,你也需要在keyup事件中使用disable。还要将$(this).val.length更改为$(this).val().length

代码语言:javascript
运行
复制
$(document).ready(function(){
    $('.sendButton').attr('disabled',true);
    $('#message').keyup(function(){
        if($(this).val().length !=0)
            $('.sendButton').attr('disabled', false);            
        else
            $('.sendButton').attr('disabled',true);
    })
});

或者,您可以使用条件运算符而不是if语句。也可以使用属性代替attr,因为对于disabled、checked等属性,属性不是recommended by jQuery 1.6或更高。

对于jQuery 1.6,对于尚未设置的属性,.attr()方法将返回

。要检索和更改DOM属性,如表单元素的选中、选中或禁用状态,请使用.prop()方法jQuery docs

代码语言:javascript
运行
复制
$(document).ready(function(){
    $('.sendButton').prop('disabled',true);
    $('#message').keyup(function(){
        $('.sendButton').prop('disabled', this.value == "" ? true : false);     
    })
});  
票数 74
EN

Stack Overflow用户

发布于 2013-07-17 19:59:06

试试这段代码

代码语言:javascript
运行
复制
$(document).ready(function(){
    $('.sendButton').attr('disabled',true);

    $('#message').keyup(function(){
        if($(this).val().length !=0){
            $('.sendButton').attr('disabled', false);
        }
        else
        {
            $('.sendButton').attr('disabled', true);        
        }
    })
});

检查demo Fiddle

您缺少if语句的else部分(如果textbox为空,则再次禁用该按钮)和if($(this).val.length !=0){val函数后的圆括号()

票数 11
EN

Stack Overflow用户

发布于 2013-07-17 20:43:11

请试试这个

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
  <head>
    <title>Jquery</title>
    <meta charset="utf-8">       
    <script src='http://code.jquery.com/jquery-1.7.1.min.js'></script>
  </head>

  <body>

    <input type="text" id="message" value="" />
    <input type="button" id="sendButton" value="Send">

    <script>
    $(document).ready(function(){  

      var checkField;

      //checking the length of the value of message and assigning to a variable(checkField) on load
      checkField = $("input#message").val().length;  

      var enableDisableButton = function(){         
        if(checkField > 0){
          $('#sendButton').removeAttr("disabled");
        } 
        else {
          $('#sendButton').attr("disabled","disabled");
        }
      }        

      //calling enableDisableButton() function on load
      enableDisableButton();            

      $('input#message').keyup(function(){ 
        //checking the length of the value of message and assigning to the variable(checkField) on keyup
        checkField = $("input#message").val().length;
        //calling enableDisableButton() function on keyup
        enableDisableButton();
      });
    });
    </script>
  </body>
</html>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17699094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档