javascript - 仅当文本字段包含文本时才启用按钮

标签 javascript jquery html

我有一个文本字段和一个默认禁用的按钮。如果用户在文本字段中键入内容然后离开该字段,则该按钮应启用。

为什么我的代码没有按预期工作?这是一个 sample .

HTML

<input type="text" id="txtInput"></input>
<button class="buttEnable" disabled="disabled">Submit</button>

JS

$('#txtInput').keyup(
    function()
    {
        if( (this).val() == '');
        {
            $('.buttEnable').prop('disabled', 'true');
        }
        else
        {
            $('.buttEnable').prop('disable' , 'false');
        }
    }
);

最佳答案

原代码有几个错误:

  • (this).val() 中缺少一个 $
  • if 条件后多了一个分号。
  • truefalse 不应被引用。
  • disableelse 分支中拼写错误。

此外,如果您只想在用户离开字段时启用/禁用按钮,而不是在用户键入字符后立即启用/禁用按钮,那么您应该使用 change 而不是 键位

这是一个重写的版本,修复了错误并消除了一些重复代码:

$('#txtInput').change(
    function()
    {
        var isEmpty = !$(this).val();
        $('.buttEnable').prop('disabled', isEmpty);
    });

更新:如果您还想在按钮启用时添加 CSS 类,您可以调用 toggleClass:

        $('.buttEnable').prop('disabled', isEmpty)
            .toggleClass('buttBlue', !isEmpty);

关于javascript - 仅当文本字段包含文本时才启用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24343508/

相关文章:

jquery - 动态加载完成后如何使用 jquery 添加类?

javascript - 下拉列表不触发javascript函数

javascript - 修复一个非常滞后的 JavaScript 滚动事件

jquery - 动态创建的外部事件不可拖动

jquery - 从 iframe 内容中获取父元素的属性值

android - 在 Android 上解析 SHOUTcast 7.html 元数据

html - 'MDL - Side Drawer Menu' 的中心文本对齐无法正常工作。(getmdl.io)

javascript - jQuery/js for循环,添加具有不同结束编号的变量来分隔div

javascript - 如何在 JavaScript try catch 中将 native ReferenceError 对象堆栈传递到控制台?

javascript - FOR 运行 JS 时进度条不更新