我想做一些表单验证功能。这里是我的:如何在ajax成功函数外保存var值?
<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 = {};和它的魅力。我想我一直在盯着这个屏幕waaaaay太久了!
祝你好运阿贾克斯跟上别人的输入... –