200 lines
8.7 KiB
HTML
200 lines
8.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>BootstrapValidator demo</title>
|
|
|
|
<link rel="stylesheet" href="../vendor/bootstrap/css/bootstrap.css"/>
|
|
<link rel="stylesheet" href="../dist/css/bootstrapValidator.css"/>
|
|
|
|
<script type="text/javascript" src="../vendor/jquery/jquery.min.js"></script>
|
|
<script type="text/javascript" src="../vendor/bootstrap/js/bootstrap.min.js"></script>
|
|
<script type="text/javascript" src="../dist/js/bootstrapValidator.js"></script>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-8 col-lg-offset-2">
|
|
<div class="page-header">
|
|
<h2>Dynamic fields</h2>
|
|
</div>
|
|
|
|
<p>Please enter the information of sender and receiver:</p>
|
|
|
|
<form id="shippingForm" method="post" class="form-horizontal" action="target.php">
|
|
<fieldset>
|
|
<legend>Sender</legend>
|
|
|
|
<div class="form-group">
|
|
<label class="col-lg-3 control-label">Name</label>
|
|
<div class="col-lg-5">
|
|
<input class="form-control" type="text" name="senderName" />
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-lg-3 control-label">Phone</label>
|
|
<div class="col-lg-5">
|
|
<input class="form-control" type="text" name="senderPhone" />
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-lg-3 control-label">Address</label>
|
|
<div class="col-lg-5">
|
|
<input class="form-control" type="text" name="senderAddress" />
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-lg-3 control-label">City</label>
|
|
<div class="col-lg-5">
|
|
<input class="form-control" type="text" name="senderCity" />
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<fieldset>
|
|
<legend>Receiver</legend>
|
|
<div class="form-group">
|
|
<div class="col-lg-5 col-lg-offset-3">
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" name="receiver" value="0" checked /> Same as sender
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="receiverInfo" style="display: none;">
|
|
<div class="form-group">
|
|
<label class="col-lg-3 control-label">Name</label>
|
|
<div class="col-lg-5">
|
|
<input class="form-control" type="text" name="receiverName" />
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-lg-3 control-label">Phone</label>
|
|
<div class="col-lg-5">
|
|
<input class="form-control" type="text" name="receiverPhone" />
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-lg-3 control-label">Address</label>
|
|
<div class="col-lg-5">
|
|
<input class="form-control" type="text" name="receiverAddress"
|
|
required data-bv-notempty-message="The address is required" />
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-lg-3 control-label">City</label>
|
|
<div class="col-lg-5">
|
|
<input class="form-control" type="text" name="receiverCity"
|
|
required data-bv-notempty-message="The city is required" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<div class="form-group">
|
|
<div class="col-lg-offset-3 col-lg-3">
|
|
<button type="submit" class="btn btn-primary">Submit</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
$('#shippingForm')
|
|
.on('init.form.bv', function(e, data) {
|
|
//console.log(data);
|
|
})
|
|
.bootstrapValidator({
|
|
message: 'This value is not valid',
|
|
feedbackIcons: {
|
|
valid: 'glyphicon glyphicon-ok',
|
|
invalid: 'glyphicon glyphicon-remove',
|
|
validating: 'glyphicon glyphicon-refresh'
|
|
},
|
|
fields: {
|
|
senderName: {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'The name is required'
|
|
}
|
|
}
|
|
},
|
|
senderPhone: {
|
|
message: 'The phone number is not valid',
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'The phone number is required'
|
|
},
|
|
digits: {
|
|
message: 'The value can contain only digits'
|
|
}
|
|
}
|
|
},
|
|
senderAddress: {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'The address is required'
|
|
}
|
|
}
|
|
},
|
|
senderCity: {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'The city is required'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
.on('added.field.bv', function(e, data) {
|
|
console.log('Added element --> ', data.field, data.element, data.options);
|
|
})
|
|
.on('change', 'input[type="checkbox"][name="receiver"]', function() {
|
|
var sameAsSender = $(this).is(':checked'),
|
|
$receiverPhone = $('#shippingForm').find('input[name="receiverPhone"]').eq(0),
|
|
$receiverCity = $('#shippingForm').find('input[name="receiverCity"]').eq(0);
|
|
|
|
if (sameAsSender) {
|
|
$('#receiverInfo').hide();
|
|
|
|
$('#shippingForm')
|
|
// Remove field
|
|
.bootstrapValidator('removeField', 'receiverName')
|
|
.bootstrapValidator('removeField', 'receiverAddress')
|
|
.bootstrapValidator('removeField', $receiverPhone)
|
|
.bootstrapValidator('removeField', $receiverCity);
|
|
} else {
|
|
$('#receiverInfo').show();
|
|
|
|
$('#shippingForm')
|
|
// Add field
|
|
.bootstrapValidator('addField', 'receiverName', {
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'The name is required'
|
|
}
|
|
}
|
|
})
|
|
.bootstrapValidator('addField', 'receiverAddress') // The options are automatically parsed from HTML attributes
|
|
.bootstrapValidator('addField', $receiverPhone, {
|
|
message: 'The phone number is not valid',
|
|
validators: {
|
|
notEmpty: {
|
|
message: 'The phone number is required'
|
|
},
|
|
digits: {
|
|
message: 'The value can contain only digits'
|
|
}
|
|
}
|
|
})
|
|
.bootstrapValidator('addField', $receiverCity); // The options are automatically parsed from HTML attributes
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |