在JavaScript中,如果字符串为空或只有空格,如何禁用按钮?

时间:2014-11-11 02:38:43

标签: javascript string button whitespace

$(document).ready(function() {
    $('.expanding').on('keyup',function() {

        var textarea = document.getElementsByTagName('textarea')[0];
        var submitBtn = document.getElementById('submit-btn');

        if(textarea.value == '') {
            $('#submit-btn').attr('disabled', true);
        } else {
            $('#submit-btn').attr('disabled', false);
        }
    });
});

到目前为止,这是我的代码。它工作正常,但它缺少一个功能。因此,默认情况下,textarea的值为空字符串,因此禁用该按钮。但是,输入的任何空格都会启用按钮,这是我不想要的。

我是否使用其他?或者在if语句中?我怎么写这个?

感谢。

3 个答案:

答案 0 :(得分:1)

使用下面的.trim()或$ .trim()函数,删除前导&结束空格,然后检查textarea是否有字符串长度(如果它只是一堆空格则不会。)

$(document).ready(function() {
  $('.expanding').on('keyup',function() {

    // Using vanilla javascript
    var textarea = document.getElementsByTagName('textarea')[0].trim();
    // or with jQuery
    var textarea = $.trim(document.getElementsByTagName('textarea')[0]);

    var submitBtn = document.getElementById('submit-btn');

    if( !textarea.length ) {
        $('#submit-btn').attr('disabled', true);
    } else {
        $('#submit-btn').attr('disabled', false);
    }
  });
});

答案 1 :(得分:1)

您可以使用trim()

if(textarea.value.trim() == '')

答案 2 :(得分:0)

只需从值中删除前导和尾随空格:

    if(textarea.value.replace(/^\s*(.*?)\s*$/, "$1") == '') {