【发布时间】:2011-09-30 18:54:25
【问题描述】:
我正在尝试制作一些表单验证功能。这是我所拥有的:
<script>
$(document).ready(function() {
var myObj = {};
$('#username').keyup(function () {
id = $(this).attr('id');
validateUsername(id);
});
function validateUsername(id){
var username = $("#"+id).val();
$.ajax({
url : "validate.php",
dataType: 'json',
data: 'action=usr_id&id=' + username,
type: "POST",
success: function(data) {
if (data.ok == true) {
$(myObj).data("username","ok");
} else {
$(myObj).data("username","no");
}
}
});
} // end validateusername function
$('#submit').click(function(){
if (myObj.username == "ok") {
alert("Username OK");
} else {
alert("Username BAD");
}
});
}); // end doc ready
所以你可以看到,当在文本框中按下一个键时,它会检查它是否有效。 “data.ok”正确返回。问题基于响应,我定义了 $(myObj).username。出于某种原因,我无法让这个值在 validateusername 函数之外起作用。单击提交按钮时,它不知道 $(myObj).username 的值是什么。
我需要使用这样的东西,因为页面上有多个表单字段要验证,我可以这样做:
if (myObj.username && myObj.password && myObj.email == "ok")
...在提交表单之前检查我的所有表单字段。
我知道我一定是遗漏了一些基本的东西……有什么想法吗?
编辑:已解决
我所要做的就是将 var myObj = {}; 更改为 myObj = {}; ,它就像一个魅力。我想我已经盯着这个屏幕太久了!
【问题讨论】:
-
祝你好运,让 ajax 跟上某人的打字速度......
标签: javascript jquery ajax json