【问题标题】:disable input field totally [duplicate]完全禁用输入字段[重复]
【发布时间】:2012-11-04 04:39:55
【问题描述】:

我在显示欠款金额的表单上有输入。基本上,如果欠款为零,我会添加一个名为“paid”的特殊类,并且可以使用 jquery $(".paid")。所有这一切都运作良好。

问题是,如何防止用户点击或输入文本或使用这些输入执行其他任何操作?

到目前为止,这是我的幻想。

function disablepaid(){
    $(".paid").on("click", function(){
        alert("Do disabling stuff now");
    });
}

在其他一些帖子中,我看到人们尝试 jquery blur(),并设置 disabled 属性,如下所示 How do i grey out the input field and the submit button

请指教,谢谢。

【问题讨论】:

  • 答案是将disabled属性设置为true
  • 你为什么不通过 ajax 显示这个...比如如果条件匹配只显示字段,因为我可以禁用 js
  • @NullPointer - 如果你禁用 js,那么 ajax 调用当然也不起作用......?......

标签: javascript jquery html forms jquery-ui


【解决方案1】:

您可以在输入上设置disabled 属性..

类似:

    function disablepaid(){
        $(".paid").on("click", function(){
            alert("Do disabling stuff now");
            $(this).prop('disabled', true);
        });
    }

如果您需要在任何时候重新启用它:

    $(".paid").prop('disabled', false);

更新

另外,与其让用户点击付费输入字段然后禁用它,为什么在设置零金额时不禁用它?

【讨论】:

  • 谢谢,我更喜欢这个,因为我使用的是最新的 jquery 版本
  • @Binaryrespawn,不客气。一旦你掌握了这个库,你会惊讶于你可以用很少的代码做什么:)
【解决方案2】:

只需使用 prop() 并将 disabled 属性设置为 true

$(".paid").on("click", function(){
        $(this).prop('disabled', true);

        // or  
        this.disabled = true; 
});

【讨论】:

  • 或者只是this.disabled = true;
  • @Pointy - 是的,我刚刚添加了
【解决方案3】:

您可以禁用输入

$(".paid").attr("disabled", "disabled");

【讨论】:

  • 最好在“点击”处理程序中使用this.disabled = true;。自 jQuery 1.6 以来,像这样使用 .attr() 有点错误。
猜你喜欢
  • 2017-05-19
  • 2019-02-23
  • 1970-01-01
  • 2011-07-28
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-20
相关资源
最近更新 更多