这个问题我晚上弄了一晚上,然后一直没弄出来,不知是什么问题,今天早上上网一搜,竟然给找到了答案 ,欣喜啊 呵呵 。现在把问题描述一下:
就是我判断一个函数里面的值是否存在,通过jquery ajax调用,但是在调用函数的时候,因为$.ajax()默认是异步的,所以它会在还没有来得及赋值的
情况下,就去执行其他步骤,导致程序一直执行错误,也就是当我保存没有包含已存在的configid时,它也会执行return false,导致保存没有效果,
而包含已存在configid时会弹出已存在消息,这个是正确的.现在贴一段代码:
调用函数:
- function save(){
- var configID=$("select[name=configId_extentionID]").val();
- if(!checkValidInput()){
- return false;
- }
- //test the configid whether it exsited
- if(!IsConfigIDExist(configID)){
- return false;
- }
- //window.location=xpcHomeLocation+'PlugInManageAction.do?operation=save';
- document.PlugInForm.action=xpcHomeLocation+'PlugInManageAction.do?operation=save';
- document.PlugInForm.method='post';
- document.PlugInForm.submit();
- }
- function IsConfigIDExist(configID){
- var b=true;
- $.ajax({
- url:xpcHomeLocation+'PlugInManageAction.do?operation=checkConfigIDExist&configID='+configID,
- type:"POST",
- async:false,//synchronize:it must have been returned the result ,then execute the program.
- dataType:"json",
- success:function(result){
- if(result.success==false){
- alert(result.msg);
- b=false;
- }
- }
- })
- return b;
- }