Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript tagsManager验证程序方法内的数组中存在检查值_Javascript_Jquery_Asp.net Mvc 3_Razor - Fatal编程技术网

Javascript tagsManager验证程序方法内的数组中存在检查值

Javascript tagsManager验证程序方法内的数组中存在检查值,javascript,jquery,asp.net-mvc-3,razor,Javascript,Jquery,Asp.net Mvc 3,Razor,我使用tagsManager插件在Razor视图中添加某些标记,并使用ViewBag将int[]从控制器传递到视图 javascript代码如下 $(document).ready(function () { $(".tm-input").tagsManager({ delimiters: [9, 44], // tab, comma . Can add Enter by adding 13 to this list , but form Post will occ

我使用tagsManager插件在Razor视图中添加某些标记,并使用ViewBag将int[]从控制器传递到视图 javascript代码如下

  $(document).ready(function () {
    $(".tm-input").tagsManager({
        delimiters: [9, 44], // tab,  comma . Can add Enter by adding 13 to this list , but form Post will occur
        hiddenTagListName: 'Students', //Use the property of the model as Hidden field to get the values at post 
        hiddenTagListId: 'Students',
        validator: function (value) {
            // var items = @Html.Raw(Json.Encode(ViewBag.RollNos));
             var items = [ @(string.Join(", ", (int[])ViewBag.RollNos)) ];
             console.log(items);
              console.log(value);
              var res=items.indexOf(value);
             console.log(res);
             var res=$.inArray( value, items);
             console.log("**"+res);
             if(items.indexOf(value) >-1)
             {
                return true;
             }
             else{
                alert("Invalid roll NO");
                return false;
            }
       }
    });
});
在控制台中,我看到的是

[1, 3, 6, 7, 5, 2, 4]
1
-1
**-1
当元素1不存在于数组中时我得到的ie[使用jquery和djavascript方法] 对此错误有何见解?

如果对返回字符串的值使用
trim()
,则数组包含整数,因此比较将失败。拆下
饰件
,它就可以工作了:

var arr = [1, 3, 6, 7, 5, 2, 4];
var value = 1;

console.log('JS', arr.indexOf(value));
console.log('jQ', $.inArray(value, arr));

如果必须使用字符串值,则需要将其转换为整数:

var value = "1";
console.log('JS', arr.indexOf(parseInt(value, 10)));
console.log('jQ', $.inArray(parseInt(value), arr));

值的值是多少?此外,并非所有浏览器都支持
indexOf
。在标记jQuery之后,您可以尝试
$.inArray(items,value)
我也尝试了jQuery var res=$.inArray(value.trim(),items);控制台日志(“**”+res);但是得到-1。此外,value参数的值也在增加,因为我也尝试删除trim()。但它仍然只返回-1。这个问题是在tagsManager插件完全初始化的情况下编辑的。是的,如果我从控制台运行,一切正常没有问题,但是从代码返回-1