Javascript 重写引导有错误类
我在Rails中有一个表单,它有一个名为Amount的字段。当用户输入金额时,我在输入字段中插入逗号。HTML和Javascript代码如下所示:Javascript 重写引导有错误类,javascript,jquery,html,ruby-on-rails,twitter-bootstrap,Javascript,Jquery,Html,Ruby On Rails,Twitter Bootstrap,我在Rails中有一个表单,它有一个名为Amount的字段。当用户输入金额时,我在输入字段中插入逗号。HTML和Javascript代码如下所示: <div class='col-sm-12 col-md-4 form-group' id="amount_div"> <%=f.text_field_without_bootstrap :amount, required:true, class: 'form-control' %> <div class
<div class='col-sm-12 col-md-4 form-group' id="amount_div">
<%=f.text_field_without_bootstrap :amount, required:true, class: 'form-control' %>
<div class="help-block with-errors"></div>
</div>
$('#amount').keyup(function(){
$(this).val(function(index, value) {
return value
.replace(/\D/g, "")
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
});
a = $('#amount').val().replace(/\,/g,'');
if(a!=""){
b = parseInt(a);
console.log(b);
if(b>100000){
$("#amount_div").addClass("has-error");
}
}
});
$('#amount').keyup(函数(){
$(this).val(函数(索引,值){
返回值
.替换(/\D/g,“”)
.替换(/\B(?=(\d{3})+(?!\d))/g,“,”;
});
a=$('#amount').val().替换(/\,/g');
如果(a!=“”){
b=parseInt(a);
控制台日志(b);
如果(b>100000){
$(“#amount_div”).addClass(“有错误”);
}
}
});
现在,问题是,在用户输入金额后,我想检查输入的金额是否大于100000。如果它更大,我想向用户显示这个错误,并在这种情况下禁用提交按钮。Bootstrap有一个内置类,用于同一个名为“has error”的对象。每当任何字段缺少任何验证时,一个名为“has error”的新类就会附加到div中,除了输入字段之外,还会向用户显示错误,并禁用提交按钮。在用户输入金额后,我希望对金额字段具有相同的功能
我将has error类追加到我的div中,但如果我单击amount inut字段之外的任何位置,该类将消失。我不明白这个问题。如果我对附加错误类的理解是错误的,请纠正我。谢谢 您看到这种行为是因为您正在使用引导验证程序
has error
是引导验证程序根据输入上提供的验证规则在输入无效时添加到表单组
的默认错误类。每次您聚焦(模糊)输入字段或提交表单时,验证程序都会相应地添加或删除错误类。由于您在输入上没有任何验证规则,引导验证程序认为输入是有效的,并且删除类。为了修复此行为,您可以在输入上实际使用<代码> .max <代码>,以使验证自动处理引导引导程序。所以只需改变
<%=f.text_field_without_bootstrap :amount, required:true, class: 'form-control' %>
到
。
或者,您可以编写一些自定义css来添加错误边界,并将该类添加到引导验证程序不知道的输入中。希望这有帮助。您是否正在使用
引导验证程序
?是。我正在使用这个{toggle:'validator'}如果我使用数字字段而不是文本字段,我将无法应用逗号。我只是想找到一种方法来通知用户输入字段是错误的,某种程度上类似于Bootstrap的方式。@Yesha Ohh..好的。然后,您必须编写一个自定义css类并将其添加到输入中,而不是像我提到的那样,将has error
,或者将自定义验证语句添加到验证器中。顺便问一下,您正在使用哪个版本的引导?我也在使用3.2.0版,您能解释一下“向验证器添加自定义验证语句”是什么意思吗?
<%=f.number_field_without_bootstrap :amount, required:true, class: 'form-control', max: 100000 %>.