JQUERY TAGIT验证输入是否为数字

时间:2018-11-26 14:11:36

标签: javascript jquery

我正在使用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);

                    }
                }
            }
        });

2 个答案:

答案 0 :(得分:2)

$.isNumeric( "-10" )

返回true。

来自https://api.jquery.com/jQuery.isNumeric/

答案 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
            }
        }
    });