1

所以;我尝试在线检查几个解决方案,但是我找不到解决方案来解决使用bootstrapvalidator启用和禁用字段验证的问题。bootstrapValidator-启用和禁用字段验证

我有一个应该给错误当有人输入负数(如-4,-100,-545等)领域,任何数量的不是数字(例如4.4.4,4.R, 4t等)。 但我想提出一个条件,当用户输入-999时不会给出错误。

代码工作良好,当用户输入其他数字,是不是消极和诺布数字。如果用户输入负号或非数字号码,则显示错误。当用户输入-999时,它验证为真(不显示错误),但如果用户将号码(-999)更改为其他号码,例如负号和nun-数字号,则我的字段验证停止工作(意味着不要尽管它应该显示任何错误)。

所以,我怎么可以启用和禁用现场验证或现场验证设置的条件使用bootstrapValidator解决我的问题.. ???

希望你们已经遇到过这样的问题,我希望你能帮我解决难题。

你可以在这里尝试:https://jsfiddle.net/os3b0dqx/,看看它是如何工作

my template.html looks like: 
<form class="well form-horizontal" action=" " method="post" id="myform"> 
<div class="form-group"> 
<label class="col-xs-3 control-label">Length</label> 
<div class="col-xs-5"> 
<input type="text" class="form-control" id="length" name="length" /> 
</div> 
</div> 
<div class="form-group"> 
<div class="col-xs-5 col-xs-offset-1"> 
<button type="submit" class="btn btn-default">Submit</button> 
</div> 
</div> 
</form> 
<script> 
$(document).ready(function() { 
$('#myform').bootstrapValidator({ 
feedbackIcons: { 
validating: 'glyphicon glyphicon-refresh'  
}, 
fields: { 
length: { 
validators: { 
greaterThan: { 
value:0, 
message: 'The value must be greater than or equal to zero' 
}, 
numeric: { 
message: 'The value is not a number', 
thousandsSeparator: '', 
decimalSeparator: '.' 
}, 
notEmpty: { 
message: 'Please fill the length' } 
} 
}, 
} 
}).on('click keyup input change','[name="length"]',function(){ 
if ($(this).val() == -999) { 
$('#myform').bootstrapValidator('enableFieldValidators','length',false); 
    } 
else{ 
$('#myform').bootstrapValidator('validateField','length'); 
//$('#myform').bootstrapValidator('enableFieldValidators','length',true); 
// both "validateField" and "enableFieldValidators" doesn't work for me.. 
} 
}); 
}); 

回答

0

改变这个if ($(this).val() == -999)if ($(this).val() == '-999')

+0

谢谢您的回答@trushar widetech;但是你的解决方案并没有解决问题。我想要做的是在输入-999后重新验证我的字段。看到问题;在输入-999字段验证工作之前完美无缺,但是在输入-999后,如果我将该编号(-999)更改为任何其他编号,比如说-8或67f或6.7.7字段验证不显示错误消息。似乎($('#myform')。bootstrapValidator('validateField','length');)不要重新验证我的字段 –

+0

你可以在代码片段中添加你的代码,这样我就能明白你到底想要什么 –

+0

试试看: https://jsfiddle.net/os3b0dqx/ –