如何使用 javascript 验证动态行 + 选择的 select?
How to validate dynamic row + chosen select with javascript?
我有下面的代码
http://jsfiddle.net/manojgolty/65xcgaq0/1/
// Chosenify every multiple select DOM elements with class 'chosen'
$('.chosen-selects').chosen({
width: '100%',
allow_single_deselect : true,
no_results_text : 'Oops, No Results Found for - '
});
Here is the problem.
<i>how to validate the dynamically created row using javascript..
Please provide solution even in the jquery as well.
Thanks for your guidance.</i>
我从未使用过 JQBootstrapValidator,但您可以改用以下验证器之一:
- BootstrapValidator(不再维护)
- FormValidation(Bootstrapvalidator从v0.6.0起的新名称,是商业产品)
- JQuery-validation.
在您的 fiddle 中,当您生成 select 字段时,您将 Chosen
插件应用到 select
字段,紧接着添加 select
字段到使用的验证器,见以下代码:
# 使用 BootstrapValidator(v0.5.2 或 0.5.3)
$clone.find('select').each(function () {
// ...
$(this).chosen({
// ...
});
// <=== Here add your field to BootstrapValidator
// Revalidate your field when it is changed
$(this).change(function(e) {
$('#yourForm').bootstrapValidator('revalidateField', $(this));
});
// Add it using the `rules` method
$('#yourForm').bootstrapValidator('addField', $(this), {
validators: {
notEmpty: {
message: 'Please select an option'
}
}
});
// ===>
}).end()
然后调用验证器:
$('#yourForm')
.find('.chosen-selects')
.chosen({
width: '100%',
allow_single_deselect : true,
no_results_text : 'Oops, No Results Found for - '
})
// Revalidate your field when it is changed
.change(function(e) {
$('#yourForm').bootstrapValidator('revalidateField', 'your_field_name');
})
.end()
.bootstrapValidator({
excluded: ':disabled', // <=== make sure to use this option
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
your_field_name: {
validators: {
notEmpty: {
message: 'Please choose an option'
}
}
}
}
});
# 使用 FormValidation(v0.6.0 及以上版本)
$clone.find('select').each(function () {
// ...
$(this).chosen({
// ...
});
// <=== Here add your field to FormValidation
// Revalidate your field when it is changed
$(this).change(function(e) {
$('#yourForm').formValidation('revalidateField', $(this));
});
// Add it using the `rules` method
$('#yourForm').formValidation('addField', $(this), {
validators: {
notEmpty: {
message: 'Please select an option'
}
}
});
// ===>
}).end()
然后调用验证器:
$('#yourForm')
.find('.chosen-selects')
.chosen({
width: '100%',
allow_single_deselect : true,
no_results_text : 'Oops, No Results Found for - '
})
// Revalidate your field when it is changed
.change(function(e) {
$('#yourForm').formValidation('revalidateField', 'your_field_name');
})
.end()
.formValidation({
framework: 'bootstrap',
excluded: ':disabled', // <=== make sure to use this option
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
your_field_name: {
validators: {
notEmpty: {
message: 'Please choose an option'
}
}
}
}
});
# 使用JQuery-验证
$clone.find('select').each(function () {
// ...
$(this).chosen({
// ...
});
// <=== Here add your field to Jquery-validation
// Revalidate your field when it is changed
$(this).change(function(e) {
$(this).valid();
});
// Add it using the `rules` method
$(this).rules( "add", {
required: true,
messages: {
required: "Please select an option"
}
});
// ===>
}).end()
然后调用验证器:
$('#yourForm')
.find('.chosen-select')
// Revalidate your field when it is changed
.change(function(e) {
$(this).valid();
})
.end()
.validate({
ignore: ":hidden:not(select)", // <=== make sure to use this option
rules: {
your_initial_select_field: {
required: true
}
},
messages: {
your_initial_select_field: {
required: 'Please select an option'
}
}
});
我有下面的代码
http://jsfiddle.net/manojgolty/65xcgaq0/1/
// Chosenify every multiple select DOM elements with class 'chosen'
$('.chosen-selects').chosen({
width: '100%',
allow_single_deselect : true,
no_results_text : 'Oops, No Results Found for - '
});
Here is the problem.
<i>how to validate the dynamically created row using javascript..
Please provide solution even in the jquery as well.
Thanks for your guidance.</i>
我从未使用过 JQBootstrapValidator,但您可以改用以下验证器之一:
- BootstrapValidator(不再维护)
- FormValidation(Bootstrapvalidator从v0.6.0起的新名称,是商业产品)
- JQuery-validation.
在您的 fiddle 中,当您生成 select 字段时,您将 Chosen
插件应用到 select
字段,紧接着添加 select
字段到使用的验证器,见以下代码:
# 使用 BootstrapValidator(v0.5.2 或 0.5.3)
$clone.find('select').each(function () {
// ...
$(this).chosen({
// ...
});
// <=== Here add your field to BootstrapValidator
// Revalidate your field when it is changed
$(this).change(function(e) {
$('#yourForm').bootstrapValidator('revalidateField', $(this));
});
// Add it using the `rules` method
$('#yourForm').bootstrapValidator('addField', $(this), {
validators: {
notEmpty: {
message: 'Please select an option'
}
}
});
// ===>
}).end()
然后调用验证器:
$('#yourForm')
.find('.chosen-selects')
.chosen({
width: '100%',
allow_single_deselect : true,
no_results_text : 'Oops, No Results Found for - '
})
// Revalidate your field when it is changed
.change(function(e) {
$('#yourForm').bootstrapValidator('revalidateField', 'your_field_name');
})
.end()
.bootstrapValidator({
excluded: ':disabled', // <=== make sure to use this option
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
your_field_name: {
validators: {
notEmpty: {
message: 'Please choose an option'
}
}
}
}
});
# 使用 FormValidation(v0.6.0 及以上版本)
$clone.find('select').each(function () {
// ...
$(this).chosen({
// ...
});
// <=== Here add your field to FormValidation
// Revalidate your field when it is changed
$(this).change(function(e) {
$('#yourForm').formValidation('revalidateField', $(this));
});
// Add it using the `rules` method
$('#yourForm').formValidation('addField', $(this), {
validators: {
notEmpty: {
message: 'Please select an option'
}
}
});
// ===>
}).end()
然后调用验证器:
$('#yourForm')
.find('.chosen-selects')
.chosen({
width: '100%',
allow_single_deselect : true,
no_results_text : 'Oops, No Results Found for - '
})
// Revalidate your field when it is changed
.change(function(e) {
$('#yourForm').formValidation('revalidateField', 'your_field_name');
})
.end()
.formValidation({
framework: 'bootstrap',
excluded: ':disabled', // <=== make sure to use this option
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
your_field_name: {
validators: {
notEmpty: {
message: 'Please choose an option'
}
}
}
}
});
# 使用JQuery-验证
$clone.find('select').each(function () {
// ...
$(this).chosen({
// ...
});
// <=== Here add your field to Jquery-validation
// Revalidate your field when it is changed
$(this).change(function(e) {
$(this).valid();
});
// Add it using the `rules` method
$(this).rules( "add", {
required: true,
messages: {
required: "Please select an option"
}
});
// ===>
}).end()
然后调用验证器:
$('#yourForm')
.find('.chosen-select')
// Revalidate your field when it is changed
.change(function(e) {
$(this).valid();
})
.end()
.validate({
ignore: ":hidden:not(select)", // <=== make sure to use this option
rules: {
your_initial_select_field: {
required: true
}
},
messages: {
your_initial_select_field: {
required: 'Please select an option'
}
}
});