我正在寻找解决方案来验证textfield对由json文件提供的数组的输入。 例如:在注册表单中检查,如果所需的用户名已存在。针对json/array的jQuery textfield验证
谁能帮助与工作的例子,插件,脚本或教程?
的 'usernames.json' 看起来像这样...
{"usernames":["carl","jack","jill"]}
...并读出与...
$.getJSON("usernames.json", function(names) {
var invalidName = names;
我会去上...
jQuery.validator.addMethod
...但是从现在开始,我很坚持。
如果有人可以帮忙做工作的例子,我会很高兴!
////////////////////////////////////////////// //////
编辑:感谢Utkanos和Pavel Staseljun,我能想出以下解决方案,这是只有大致测试! 请在下面找到Utkanos的例子,因为这个例子包含“keyup”操作,而不是“submit”,并且不包含“required”--check。 “#errorresponse”是div,可能会显示错误消息。
$.ajax({
url: "http://yoururlto.json?callback=?",
dataType:"jsonp",
jsonpCallback: '?',
async: false,
success: function(json) {
$('#user').keyup(function(evt) {
var jsonarray = json.usernames;
var userinput = $('#user').val().toLowerCase()
var check = $.inArray(userinput, jsonarray);
if (check !== -1) {
$("#errorresponse").text('Thanks to Utkanos and Pavel Staseljun!');
}
})
}
});
我想'如果($ .inArray($( '#用户名')VAL(),json.usernames)。)错误= '用户名已经采取了';',而不是'如果(json.usernames.indexOf($ ('#username').val())!= -1)error ='用户名已被占用';'更好..? – 2012-07-31 09:35:13
嗯,是的,它更加跨浏览器。我只是喜欢ECMA5 :) – Utkanos 2012-07-31 09:36:47
非常感谢你们俩!这非常有帮助! :-) – Elvis 2012-08-01 08:56:11