首页 文章

jQuery - 我可以验证禁用的字段吗?

提问于
浏览
14

我有一个表单,用户需要单击一个链接,通过弹出窗口选择一个用户,然后用ID和带有用户名的显示字段填充一个隐藏字段 .

显示字段设置为disabled =“disabled”以强制用户使用弹出窗口而不在字段中键入值 .

我需要确保用户选择一个名字 . 我正在使用jQuery和Jorn的验证插件 .

如果值为空,则在禁用字段上执行必需:true似乎不会触发 .

任何想法如何解决这个问题?

3 回答

  • 1

    而不是让它被禁用,你尝试过只读吗?

    <input type="text" readonly="readonly" />
    

    我记得几年前,禁用字段不是由表单提交的,因此可能没有经过验证

    这是关于该主题的W3C HTML4 Spec .

  • 2

    根据之前的建议,可能的解决方案可能是:

    var _valid = $.fn.valid;
    $.fn.valid = function (alsoDisabled) {
        var alsoDisabled = alsoDisabled || false;
        if (alsoDisabled) {
            this.find('[disabled]').prop('disabled', false);
        }
        var retVal = _valid.apply(this);
        if (alsoDisabled) {
            this.find('[disabled]').prop('disabled', true);
        }
        return retVal;
    };
    

    所以你可以使用可选参数调用有效方法: $('#form').valid(true) 也检查禁用字段或 $('#form').valid() 正常行为

    最好的问候加埃塔诺

  • 28

    为什么不启用它只是为了验证然后再次禁用它...使用 .attr('disabled','') 启用它然后 .attr('disabled','disabled') 再次禁用它会发生这么快你甚至不会注意到它 .

相关问题