我已经针对这个问题发布了一个类似的问题并且可以自己回答,但解决方案并不能完全满足我。
使用Asp.Net/C#,我有一个按钮,它会执行一些服务器端代码 通过客户端验证。我想这样做,因为对于我的应用程序,我认为它最适合。
<asp:Button runat="server" ID="addBtn" Text="Add" OnClientClick="if(validateEntry()== false){return false;}" OnClick="addBtn_Click"/>
我调用一个名为validateEntry()的jQuery函数,该函数使用PageMethods来获取一些 来自服务器的数据。数据是验证过程所必需的。
function validateEntry() {
PageMethods.CheckEntry(params, function(result){//Evaluate result of PageMethods}
}
我的问题是我不知道如何正确处理从PageMethods收到的数据。 我只能将它们交给可以使用它们的子功能。但我需要 变量类型中的数据,用于执行返回false。
答案 0 :(得分:0)
我已经发布了一个运行示例,如何使用jquery here中的页面方法。
答案 1 :(得分:0)
我制定了一个解决方案,但感谢更容易的解决方案。
我在页面上使用隐藏字段,在子函数中,我写了结果 从页面方法到字段:
$("#pageMethodsResultField").val(result);
之后,我可以从字段中读取结果,以便在主函数中使用它。
答案 2 :(得分:0)
鉴于PageMethods.CheckEntry无延迟地运行传递函数,您可以这样做:
function validateEntry() {
var foo;
PageMethods.CheckEntry(params, function(result){
foo = "bar";
});
alert(foo);
}
如果您尝试此操作并且未显示“foo”,则该功能会延迟,您需要重新考虑如何执行此操作或提供更多信息,以便我们为您提供帮助。