Javascript 禁用引导验证程序提交按钮,直到整个表单有效
我已经搜索了StackOverflow来解决这个问题,但还没有找到一个有效的解决方案 我正在使用引导验证程序验证表单,它运行良好。我想禁用Javascript 禁用引导验证程序提交按钮,直到整个表单有效,javascript,jquery,twitter-bootstrap,validation,jqbootstrapvalidation,Javascript,Jquery,Twitter Bootstrap,Validation,Jqbootstrapvalidation,我已经搜索了StackOverflow来解决这个问题,但还没有找到一个有效的解决方案 我正在使用引导验证程序验证表单,它运行良好。我想禁用submit按钮,直到整个表单有效并且引导验证程序具有isValid()功能。使用这个函数,我能做的最好的事情就是使用keyup,这很难看 每当表单评估其有效性时,都会有一个延迟时间,“提交”按钮会很快从“有效”闪烁到“无效” 有没有办法用setTimeout或.delay()修复此闪烁,并且仍然像现在一样具有表单功能 或者,是否有一个用于此的纯引导验证程序解
submit
按钮,直到整个表单有效并且引导验证程序具有isValid()
功能。使用这个函数,我能做的最好的事情就是使用keyup,这很难看
每当表单评估其有效性时,都会有一个延迟时间,“提交”按钮会很快从“有效”闪烁到“无效”
有没有办法用setTimeout
或.delay()
修复此闪烁,并且仍然像现在一样具有表单功能
或者,是否有一个用于此的纯引导验证程序解决方案?(这将是理想的)我已经查看了文档,但没有找到任何有用的东西。只有一些方法可以设置表单验证的时间,这对我的原因没有帮助
下面是一个演示问题的示例。我更仔细地查看了您的代码,最后更改了一些关键区域以获得所需的效果
keyup
更改为status.field.bv
,每次字段状态更改时,引导验证程序(bv)都会抛出该触发器isValid()
jquery函数(它不考虑BV设置),而是检查BV应用于每个表单组的has success
类是否存在
jsIDLE:当输入电子邮件且密码字段为空时,表单有效。已更新解决方案。另外,您是否可以为将来发现此问题的任何人将原始代码添加到问题中?
<form id="test">
<div class="form-group">
<input class="form-control input-lg" name="email" type="text" size="35" placeholder="Email*"></input>
</div>
<div class="form-group">
<input class="form-control input-lg" name="password" type="password" size="35" placeholder="Confirm Password*"></input>
</div>
<input class="btn btn-lg btn-success submit-button" style="width: 100%;" value="Sign Up!" type="submit" disabled></input>
</form>
$( '#test' ).on( 'status.field.bv', function( e, data ) {
let $this = $( this );
let formIsValid = true;
$( '.form-group', $this ).each( function() {
formIsValid = formIsValid && $( this ).hasClass( 'has-success' );
});
$( '.submit-button', $this ).attr( 'disabled', !formIsValid );
});