The 'required' property validate the inputing value not the whole tagbox values. Please extend a new validation type to achieve your requirement.
<script type="text/javascript">
function getValidateValue(target){
var t = $(target);
if (t.hasClass('textbox-text')){
var vv = [];
t.parent().find('.textbox-value').each(function(){
vv.push($(this).val());
});
return vv;
} else {
return [$(target).val()];
}
}
$.extend($.fn.validatebox.defaults.rules, {
notEmpty: {
validator: function(value,param){
if ($(this).val()){return true;}
var vv = getValidateValue(this);
return vv.length>0;
},
message: 'The values can not be empty.'
}
});
$(function(){
$('#tb').tagbox({
required: false,
validType: 'notEmpty',
val: function(target){
return getValidateValue(target);
},
onRemoveTag: function(){
var target = this;
setTimeout(function(){
$(target).tagbox('validate');
},0)
},
inputEvents: $.extend({},$.fn.tagbox.defaults.inputEvents, {
blur: function(e){
var target = e.data.target;
$(target).tagbox('setText','');
}
})
});
})
</script>