求指教啊~~~~~~~~~~~~标题要长
本帖最后由 wangxuebo 于 2013-04-18 14:15:10 编辑
<script type="text/javascript">
function tsdir() {
$("#spdir").html("请输入虚拟目录名称,此名称必须是唯一的!");
$("#spdir").attr("class", "info_show");
}
function checkdir() {
var dir = $("#txtdir").val(); //判断文本框是否为空
if (jQuery.trim(dir) == "") {
$("#spdir").html("虚拟目录名称不能为空!");
$("#spdir").attr("class", "info_err");
$("#txtdir").css("border", "1px solid red");
return false;
}
//判断目录是否重复
$.post("../../action/CheckDir.aspx", { Action: "post", str: $("#txtdir").val() },
function (value, textStatus) {
if (value == "0") {
$("#spdir").html("");
$("#spdir").attr("class", "info_ok");
$("#txtdir").css("border", "1px solid green");
return true;
} else {
$("#spdir").html("虚拟目录名称已经存在");
$("#spdir").attr("class", "info_err");
$("#txtdir").css("border", "1px solid red");
return false;
}
}
);
$("#spdir").html("");
$("#spdir").attr("class", "info_ok");
$("#txtdir").css("border", "1px solid green");
return true;
}
//按钮提交时验证
function checkform() {
if (!checkdir()) {
alert("虚拟目录输入有误!");
$("#txtdir").focus();
return false;
}
return true;
}
</script>

文本框为空时候,按钮提交

当我文本框输入任何数据提交,就不执行验证目录重复,直接执行插入数据库了,什么原因啊??
也就是按钮提交数据时,不执行判断目录重复的JS,直接提交了
[解决办法]
$.post换成$.ajax
将异步换成同步
$.ajax方法有一个参数
async:false;
[解决办法]
var html = $.ajax({
url: "../../action/CheckDir.aspx",
data:{ Action: "post", str: $("#txtdir").val() },
async: false
}).responseText
if(html!="true"){
$("#spdir").html("虚拟目录名称已经存在");
$("#spdir").attr("class", "info_err");
$("#txtdir").css("border", "1px solid red");
}