如何防止Boostrapvalidator禁用表单上的所有按钮?

时间:2015-09-25 20:44:00

标签: jquery twitter-bootstrap bootstrapvalidator

我正在使用来自nghuuphuoc的boostrapvalidator而且我遇到这种情况,当验证被触发时,我的所有按钮都被禁用。这对我来说是一个问题,因为我希望从验证中跳过一个特定的按钮。无论如何使用验证器进行此操作?

谢谢!

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,如果表单包含无效字段,则希望保持两个按钮处于活动状态。

找出三种可能的解决方案。

  

默认情况下,如果至少有一个无效字段

,将禁用提交按钮

如果表单字段无效,则禁用多个按钮的最小通用example

<强>解决方案-1

将其他按钮的类型从type="submit"更改为type="button"将使其他按钮保持活动状态,并且只有在表单字段无效时才会禁用提交按钮。

Fiddle

<强>解决方案-2

仅添加属性name="submitme" 以形成submit按钮,并在bootstrapvalidator插件调用中定义它。
重要提示:如果您提交按钮将保持disabled,即使字段有效,也不要使用属性name="submit"

注意:在此解决方案中,所有按钮都有type="submit"

$(document).ready(function () {
    $('#selector').bootstrapValidator({
        submitButtons: 'button[name="submitme"]',
        // Rest of the validation code goes here
    });
});

如果表单字段无效,这将仅禁用submit按钮并保持其他按钮处于活动状态。

Fiddle

<强>解决方案-3

使用表单事件status.field.bv并检查表单字段是否有效保持其他按钮处于活动状态

注意:此解决方案已经过测试,可以使用新版本0.5.3

$(document).ready(function () {
    $('#selector').bootstrapValidator({
        // Rest of the validation code goes here
    }).on('status.field.bv', function (e, data) {
        formIsValid = true; 
        if(formIsValid) { 
            $('#cancel').attr('disabled', false);
            $('#reset').attr('disabled', false);
        }
    });
});

注意:如果表单字段无效,则需要将id's添加到需要处于活动状态的按钮。

Fiddle