检查值存在于标签管理器验证器方法内的数组中
Check value exists in Array inside tagsManager validator method
我正在使用 tagsManager 插件 http://welldonethings.com/tags/manager/v3 在 Razor 视图中添加某些标签,并且我正在使用 ViewBag 将 int[] 从控制器传递到 View。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
IE 我得到的是元素 1 在数组中不存在 [使用两个 jquery 和 dJavaScript 方法]对这个错误有什么见解吗?
您正在对将返回字符串的值使用trim()
,数组包含整数,因此比较将失败。删除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));
相关文章:
- 如何创建一个方法来验证数组的范围
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 是否有一种方法可以使用公共代码库在Java和JavaScript中进行输入验证
- jQuery验证器添加方法未定义
- 使用JavaScript验证用户交互/输入-这是一种很好的方法
- sinon.js验证mock方法's带回调的参数
- TinyMCE验证给出错误:无法调用方法'getContent'的未定义
- 验证数据并将其保存到数据库以供实时应用程序使用的正确方法
- AngularJS中的动态表单验证 - 是否有更好的解决方案/方法
- jQuery 验证 - 调用某些元素的 .valid() 方法不会清除错误
- jQuery 在自定义方法中使用 if 语句进行验证
- 类型错误:对象 #<对象> 没有方法“身份验证”
- codeigniter:使用jquery克隆方法对动态创建的文本字段进行验证
- 网络应用程序的正确instagram身份验证方法(没有instagram帐户的用户)
- 有没有一种方法可以验证asm.js代码
- 未捕获的类型错误:对象 [对象对象] 没有方法“验证引擎”
- add方法验证yyyy-dd-mm格式的日期有什么问题?
- Jquery Validator为复选框添加方法验证
- 快捷猫鼬更新方法验证
- 如何使用用Javascript编写的现有方法验证我的表单