私はあなたのコードをより詳しく見て、あなたが望む効果のためにいくつかの重要な領域を変更することになりました.
- フィールドのステータスが変化するたびにブートストラップ バリデーター (BV) がスローするトリガーを変更しました
keyup
。status.field.bv
isValid()
jquery 関数 (BV 設定を考慮しない) を使用する代わりに、has-success
BV がそれぞれに適用されるクラスの存在を確認しますform-group
。
- フォーム グループから成功ボタンを削除しました。
コードは次のとおりです。
HTML:
<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>
Javascript:
$( '#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 );
});
JSFiddle: http://jsfiddle.net/ejyef7vc/3/