我正在使用jquery TagIt。 我知道如何使用if和isNaN使用javascript验证输入。 但是,如果有人向我展示了如何验证输入标签,我将不胜感激 并删除它,如果它不是数字:
以下代码对我不起作用 (仍然接受字母数字,而不是仅数字):
var $tagInp13 = $("#oneSessionInstanceDetails");
$tagInp13.tagit({
allowSpaces: true,
fieldName: "oneSessionInstanceDetails[]",
preprocessTag: function (val) {
if (!val) {
return '';
}
var values = val.split(/[\s,;]+/);
//var values = val.split(",");//.split(";");
if (values.length > 1) {
for (var i = 0; i < values.length; i++) {
$tagInp13.tagit("createTag", values[i]);
}
return ''
} else {
return val
}
},
/* remove the tag if it is not numeric*/
tagsChanged: function(tagValue, action, element){
if (action == 'added'){
if (isNaN(tagValue)){
$tagInp13.tagit("remove", 'tag', tagValue);
}
}
}
});
答案 0 :(得分:2)
答案 1 :(得分:0)
我已经通过afterTagAdded验证解决了这个问题:
var $tagInp13 = $("#oneSessionInstanceDetails");
instanceNumbers = ["1", "2", "3", "4", "5", "6", "7", "8"];
$tagInp13.tagit({
allowSpaces: true,
onlyAvailableTags: true,
autocomplete: {delay: 0,minLength: 0},
availableTags: instanceNumbers,
afterTagAdded: function (event, ui) {
if ($.inArray(ui.tagLabel, instanceNumbers) == -1) {
$("#oneSessionInstanceDetails").tagit("removeTagByLabel", ui.tagLabel);
}
},
fieldName: "oneSessionInstanceDetails[]",
preprocessTag: function (val) {
if (!val) {
return '';
}
var values = val.split(/[\s,;]+/);
//var values = val.split(",");//.split(";");
if (values.length > 1) {
for (var i = 0; i < values.length; i++) {
$tagInp13.tagit("createTag", values[i]);
}
return ''
} else {
return val
}
}
});