如何在基于DWR的验证后退出Javascript处理

时间:2011-04-08 12:17:58

标签: java javascript ajax dwr

我对Javascript相对较新,对Ajax和DWR不熟悉 - 我怀疑这是一个Javascript问题而不是Ajax / DWR,但这里有:

我正在编写Javascript,它使用DWR调用远程Java方法来验证在浏览器中输入的一些数据。如果验证失败(Java方法返回错误消息(非空字符串),我想向用户显示错误消息并且不再执行Javascript处理。如果验证成功(Java方法返回空字符串)I想继续使用我的Javascript来处理用户的输入。

我发现的是,在验证错误时,会显示错误消息,但Javascript处理不会停止,它会继续,就像验证成功一样。所以我的问题是如何在验证失败时结束Javascript处理(下面代码中的'A:')。

这是Javascript和伪代码的混合,但它应该说明我在做什么。

感谢您的帮助,

史蒂夫

MyRemoteService.validateData(myData, {
    callback:function(str) { 
        if (str) {
        // A: show an error message
            return;
        }                           
    }
    });


// pseudocode - this is what I want to happen:

if (validation error)
    //    don't do anything else
}

// Data was valid  - continue to do stuff

2 个答案:

答案 0 :(得分:3)

使DWR调用同步解决问题:

MyRemoteService.validateData(myData, {
   async: false,
   callback:function(str) { 
        if (str) {
        // A: show an error message
            return;
        }                           
    }
    });

答案 1 :(得分:0)

到目前为止,我能理解你的帖子,

你想要执行一些java脚本代码,只有在你从后端得到结果后才能成功或错误消息!(我是对的还是遗漏了什么)

如果是这种情况,请在dwr回调函数中编写javascript代码。因此,只有在结果来自后端后才会调用它们。