jquery表单验证>;火狐问题

jquery表单验证>;火狐问题,jquery,validation,firefox,Jquery,Validation,Firefox,这是一个表单验证,如果输入字段无效,它将隐藏“提交”按钮,如果所有输入字段都有效,它将显示该按钮 为什么在所有输入再次生效后,提交按钮在firefox中保持不可见,而在其他浏览器中则没有 这就是所讨论的javascript: $(document).ready(function(){ $("input[type='text'],input[type='password']").focus(function(){ $(this).siblings('.hideit').removeClas

这是一个表单验证,如果输入字段无效,它将隐藏“提交”按钮,如果所有输入字段都有效,它将显示该按钮

为什么在所有输入再次生效后,提交按钮在firefox中保持不可见,而在其他浏览器中则没有

这就是所讨论的javascript:

$(document).ready(function(){
$("input[type='text'],input[type='password']").focus(function(){
    $(this).siblings('.hideit').removeClass('hideit').parent('div').addClass('phover').siblings('div').removeClass('phover').children('p,strong:not(.invalid,.valid,.hidev)').addClass('hideit');
});
$("input[type='text'],input[type='password']").blur(function(){
    $(this).siblings('p,strong:not(.invalid,.valid,.hidev)').addClass('hideit').parent('div').removeClass('phover');
});
$("input[type='text'],input[type='password']").change(function(){
    var theval = $(this).val();
    var theexp = $(this).attr("reg");
    var ivalid = new RegExp(theexp);
    if (theval.search(ivalid) == -1) {
        $(this).siblings('strong.hidev,strong.valid').removeClass('hidev valid').addClass('invalid').text("x");
        showsubmit($(this));
        } else {
            $(this).siblings('strong.hidev,strong.invalid').removeClass('hidev invalid').addClass('valid').text("=");
            showsubmit($(this));
    }

});
function showsubmit(x){
    $("input[type='text'],input[type='password']").each(function(){
            var getval = $(this).val();
            var getreg = $(this).attr("reg");
            var itest = new RegExp(getreg);
            if (getval.search(itest) == -1) {
                $("p.sub").fadeOut(1000);
                return false;
             } else {
            $("p.sub").fadeIn(1000);
            return true;
            }
    });
}

});


姓名:您的姓名(姓、首名和/或中间名)。

示例:比尔、盖茨、约翰

用户名:选择一个用户名。

最小6个,无特殊字符或数字

密码:选择一个密码。

至少6个,必须包含字母、数字和xter(#、@、&、!)

电子邮件地址:输入您的电子邮件地址。

电子邮件地址必须有效才能使用


我认为答案可能在于您在评估每个输入时显示和隐藏提交按钮。相反,我立即隐藏了submit按钮,并将“showsubmit”更改为如下所示

function showsubmit(x){
var hideIt = 0;
$("input[type='text'],input[type='password']").each(function(){
    var getval = $(this).val();
    var getreg = $(this).attr("reg");
    var itest = new RegExp(getreg);
    hideIt |= (getval.search(itest) == -1);
});
if (hideIt) {
    if ($("p.sub").is(":visible")) {
      $("p.sub").fadeOut(1000);
    }
    return false;
} else {
    $("p.sub").fadeIn(1000);
    return true;
}
}

该示例可在JS Bin上找到

Bubblegum卡在“caps lock”键中?caps lock位于最左侧,就在tab键下。请不要用所有大写字母书写:这相当于叫喊,只会让一些人“捂住耳朵”……代码非常不可读。你能用大写字母写吗?试着用Firebug调试一下。()嗨,杰达图!我在JS-BIN网站上测试了这个,它工作得很好,但在本地不起作用,可能有什么问题。即使我将生成的JS-BIN HTML代码复制到firefox上的本地文件中,仍然是相同的。JS-BIN示例上的jQuery版本与您的项目中的版本相同吗?我猜您的本地页面上有所有其他CSS和JS,因此很可能是页面上的其他内容导致它崩溃。为了检查CSS、检查JS错误控制台和/或使用Firebug逐步检查JS,我还需要访问所有这些代码。
function showsubmit(x){
var hideIt = 0;
$("input[type='text'],input[type='password']").each(function(){
    var getval = $(this).val();
    var getreg = $(this).attr("reg");
    var itest = new RegExp(getreg);
    hideIt |= (getval.search(itest) == -1);
});
if (hideIt) {
    if ($("p.sub").is(":visible")) {
      $("p.sub").fadeOut(1000);
    }
    return false;
} else {
    $("p.sub").fadeIn(1000);
    return true;
}
}