Options
Option | HTML attribute | Type | Description |
---|---|---|---|
max |
data-fv-stringlength-max or maxlength |
Number | The maximum length. It's dynamic option |
message |
data-fv-stringlength-message |
String | The error message. The dynamic message is supported |
min |
data-fv-stringlength-min or minlength |
Number | The minimum length. It's dynamic option |
utf8Bytes |
data-fv-stringlength-utf8bytes |
Boolean | Evaluate string length in UTF-8 bytes. Default to false
|
trim |
data-fv-stringlength-trim |
Boolean | Indicate the length will be calculated after trimming the value or not.
Default to false |
At least one of min
and max
options is required.
You don't need to do that when using either HTML 5 maxlength="..." or minlength="..." attribute.
Using with Rails form
Rails' forms count new lines as two characters (\r\n
). Meanwhile, the
stringLength validator counts new lines as one character. So the user can input more
than number of allowed characters as long as they enter a new line.
This problem can be solved by using the dynamic
option feature which is provided by the max
option:
<div class="post">
<%= form_for @post do |f| %>
<div class="form-group">
<%= f.label :body %>
<%= f.text_area :body, class: 'form-control', rows: 3 %>
</div>
<%= f.submit 'Save', class: 'btn btn-default' %>
<% end %>
</div>
<script>
$(document).ready(function() {
$('.post form').formValidation({
framework: 'bootstrap',
fields: {
'post[body]': {
validators: {
notEmpty: {
message: 'Post content is required'
},
stringLength: {
message: 'Post content must be less than 120 characters',
max: function (value, validator, $field) {
return 120 - (value.match(/\r/g) || []).length;
}
}
}
}
}
});
});
</script>
ejemplos
Basic example
In the following form, the Full name and Bio fields must be less than 50 and 200 characters respectively.
<form id="stringLengthForm" class="form-horizontal">
<div class="form-group">
<label class="col-xs-3 control-label">Full name</label>
<div class="col-xs-6">
<input type="text" class="form-control" name="fullName" />
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Bio</label>
<div class="col-xs-6">
<textarea rows="5" class="form-control" name="bio"></textarea>
</div>
</div>
</form>
<script>
$(document).ready(function() {
$('#stringLengthForm').formValidation({
framework: 'bootstrap',
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
fullName: {
validators: {
stringLength: {
max: 50,
message: 'The full name must be less than 50 characters'
}
}
},
bio: {
validators: {
stringLength: {
max: 200,
message: 'The bio must be less than 200 characters'
}
}
}
}
});
});
</script>
<form id="stringLengthForm" class="form-horizontal"
data-fv-framework="bootstrap"
data-fv-icon-valid="glyphicon glyphicon-ok"
data-fv-icon-invalid="glyphicon glyphicon-remove"
data-fv-icon-validating="glyphicon glyphicon-refresh">
<div class="form-group">
<label class="col-xs-3 control-label">Full name</label>
<div class="col-xs-6">
<input type="text" class="form-control" name="fullName"
data-fv-stringlength="true"
data-fv-stringlength-max="50"
data-fv-stringlength-message="The full name must be less than 50 characters" />
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Bio</label>
<div class="col-xs-6">
<textarea rows="5" class="form-control" name="bio"
data-fv-stringlength="true"
data-fv-stringlength-max="200"
data-fv-stringlength-message="The bio must be less than 200 characters"></textarea>
</div>
</div>
</form>
<script>
$(document).ready(function() {
$('#stringLengthForm').formValidation();
});
</script>
HTML 5 example
The following example demonstrates an usage of the stringLength validator with
maxlength
and minlength
attributes.
<form id="html5Form" class="form-horizontal"
data-fv-framework="bootstrap"
data-fv-icon-valid="glyphicon glyphicon-ok"
data-fv-icon-invalid="glyphicon glyphicon-remove"
data-fv-icon-validating="glyphicon glyphicon-refresh">
<div class="form-group">
<label class="col-xs-3 control-label">Full name</label>
<div class="col-xs-5">
<input type="text" class="form-control" name="fullName"
maxlength="40"
minlength="10"
data-fv-stringlength-message="The full name must be more than 10 and less than 40 characters" />
</div>
</div>
</form>
<script>
$(document).ready(function() {
$('#html5Form').formValidation();
});
</script>
Example
Related validators
The following validators might be useful to you: