Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重写引导有错误类_Javascript_Jquery_Html_Ruby On Rails_Twitter Bootstrap - Fatal编程技术网

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

我在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="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 %>.