我的目标是验证特定的文本字段,其中此字段依赖于其他元素的值。
例如,我有选择标签和输入文字标签,
当select标签具有选定值时,需要输入文本。
希望有人可以提供帮助。答案 0 :(得分:4)
看看
在我们的项目中,我们正在使用Backbone验证器,与Bootstrap集成
整合样本Backbone.validation&自举
[jsfiddle.net/thedersen/c3kK2/][1]
如果您使用的是Backbone:)
对于 bootstrapvalidator ,有一个回调方法进行验证
http://bootstrapvalidator.com/validators/callback/
来自示例:
<input type="text" class="form-control" name="captcha"
data-bv-callback="true"
data-bv-callback-message="Wrong answer"
data-bv-callback-callback="checkCaptcha" />
和JS
function checkCaptcha(value, validator) {
// Determine the numbers which are generated in captchaOperation
var items = $('#captchaOperation').html().split(' '),
sum = parseInt(items[0]) + parseInt(items[2]);
return value == sum;
};
$(document).ready(function() {
// Return a random number between min and max
function randomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
};
// Generate a sum of two random numbers
function generateCaptcha() {
$('#captchaOperation').html([randomNumber(1, 100), '+', randomNumber(1, 200), '='].join(' '));
};
generateCaptcha();
$('#callbackForm').bootstrapValidator();
});
您可以使用它实现任意验证。
因此,您的验证可以通过一些全局函数来实现
使用HTML
<input type="text" class="form-control" name="captcha"
data-bv-callback="true"
data-bv-callback-message="Wrong answer"
data-bv-callback-callback="specialValidation" />
使用JS
function specialValidation(value, validator) {
// Determine the numbers which are generated in captchaOperation
var items = $('#otherField').txt();
return value == sum;
};
您需要具有元素属性的创意,才能正确链接相关元素。
答案 1 :(得分:1)
使用回调进行自定义验证 你可以在回调上使用任何验证,比如javascript validation.Need发送false或true。
pwd:
{
validators:
{
notEmpty:
{
message: 'The password is required and cannot be empty'
},
callback:
{
message: 'The password is not valid',
callback: function(value, validator, $field)
{
if (value === '')
{
return true;
}
}
}
}
}
答案 2 :(得分:0)
您可以这样做,在调用bootstrap验证之前,如果select选择了值,则只需将data-required属性添加到input元素,否则不添加该属性。希望这对你有帮助。
答案 3 :(得分:0)
页面中间有一些示例如何使用bootstrap验证:
http://bootstrapvalidator.com/getting-started/#usage
答案 4 :(得分:-1)
使用以下代码, onchange jquery函数用于此目的。
<html lang="en">
<head>
<meta charset="utf-8">
<title>change demo</title>
<style>
div {
color: red;
}
</style>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<select name="sweets" multiple="multiple">
<option>Chocolate</option>
<option selected="selected">Candy</option>
<option>Taffy</option>
<option selected="selected">Caramel</option>
<option>Fudge</option>
<option>Cookie</option>
</select>
<div></div>
<script>
$( "select" )
.change(function () {
var str = "";
$( "select option:selected" ).each(function() {
str += $( this ).text() + " ";
});
$( "div" ).text( str );
})
.change();
</script>
</body>
</html>