首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在所有字段通过验证之前,将禁用jQuery表单提交

问在所有字段通过验证之前,将禁用jQuery表单提交
EN

Stack Overflow用户
提问于 2011-12-13 19:19:12
回答 2查看 459关注 0票数 1

我有一个验证算法(通过掩码检查):

代码语言:javascript
复制
function simpleval (selector,testexp) {         
        jQuery(selector).focusout (function() { 
            get_data = jQuery(this).val();
            test_data = get_data.search(testexp);
            if (test_data == -1){
                jQuery(this).attr('value', 'INCORRECT').css('color','red');
            }
            else {
                this.removeAttribute('style');
            }
            return (test_data);
        });
    }

为了防止用户在填写表单之前单击"continue“按钮,我禁用了它:

代码语言:javascript
复制
        jQuery('#continue').attr('disabled', 'disabled');

然后我运行表单检查:

代码语言:javascript
复制
        var tested_ip = /\b(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\b/;
        ip_test = simpleval ("#dbAddress",tested_ip);
        var tested_port = /\d{2,}/; 
        port_test = simpleval("#dbPort",tested_port);

现在,如果两个字段(IP和端口号)都填写正确,我必须启用"continue“按钮。

代码语言:javascript
复制
function buttonState(){
    var isValid = false;
    if(ip_test=='0' && port_test=='0') {
                    isValid = true; 
        }
    if (isValid) {
                jQuery('#continue').attr('disabled', '')
                replaceText ('#msg','IT WORKS');
            }
    else jQuery('#continue').attr('disabled', 'disabled');
        }

    jQuery('input').on('focusout', buttonState)

问题所在:一切正常,但按钮仍然被禁用。

EN

回答 2

Stack Overflow用户

发布于 2011-12-13 19:26:23

disabled属性是一种特殊类型的属性,如checked="checked“。我认为您应该删除整个属性,因此删除disabled=" disabled“,而不是保留disabled属性为空。

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2011-12-13 20:27:12

你有没有试过使用

jQuery('#continue').removeAttr('disabled')

而不是

jQuery('#continue').attr('disabled', '')

?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8488266

复制
相关文章

相似问题

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