调用bool类型的javascript函数
我正在尝试使用AJAX调用页面方法。 参见代码调用bool类型的javascript函数,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我正在尝试使用AJAX调用页面方法。 参见代码 <asp:Button ID="btn_upload" runat="server" CssClass="btnEffects" Text="Upload" onclick="btn_upload_Click" OnClientClick="return Validate();" /> Validate方法应该返回true/false。 Validate方法的代码是 <script language="j
<asp:Button ID="btn_upload" runat="server" CssClass="btnEffects" Text="Upload"
onclick="btn_upload_Click" OnClientClick="return Validate();" />
Validate方法应该返回true/false。
Validate方法的代码是
<script language="javascript">
function Validate()
{
var filename = $get('<%= txt_filename.ClientID %>').value;
PageMethods.IsValidFile(filename,OnSuccess, OnFailure);
// IsValidFile is a Page Method of bool return type
}
function OnSuccess(result)
{
if ( !result)
{
alert('File '+ $get('<%= txt_filename.ClientID %>').value + ' does not exist');
return false;
}
else
{
return true;
}
}
function OnFailure(error)
{
}
</script>
函数验证()
{
var filename=$get(“”).value;
IsValidFile(文件名、OnSuccess、OnFailure);
//IsValidFile是bool返回类型的页面方法
}
函数OnSuccess(结果)
{
如果(!结果)
{
警报('File'+$get(''.value+'不存在');
返回false;
}
其他的
{
返回true;
}
}
功能失效(错误)
{
}
我的问题是,即使在显示警报“File somefilename不存在”之后。
整个页面重新刷新(即,发生回发)您正在运行一个异步操作,但仍然希望它阻止您的调用并等待响应,这是我在过去看到的一种解决方法,您隐藏了提交按钮并创建了另一个调用ajax请求的按钮,在该请求成功后,单击隐藏按钮,如下所示:
<asp:Button ID="btn_upload_dummy" runat="server" CssClass="btnEffects" Text="Upload" OnClientClick="Validate();" />
<asp:Button ID="btn_upload" runat="server" CssClass="btnEffects" style='display:none;' Text="Upload" onclick="btn_upload_Click" />
<script language="javascript">
function Validate()
{
var filename = $get('<%=txt_filename.ClientID %>').value;
PageMethods.IsValidFile(filename,OnSuccess, OnFailure);
// IsValidFile is a Page Method of bool return type
}
function OnSuccess(result)
{
if ( !result)
{
alert('File '+ $get('<%=txt_filename.ClientID %>').value + ' does not exist');
return false;
}
else
{
var btn = $get('<%btn_upload.ClientID');
var clicker = btn.click ? btn.click : btn.onclick;
clicker();
}
}
</script>
函数验证()
{
var filename=$get(“”).value;
IsValidFile(文件名、OnSuccess、OnFailure);
//IsValidFile是bool返回类型的页面方法
}
函数OnSuccess(结果)
{
如果(!结果)
{
警报('File'+$get(''.value+'不存在');
返回false;
}
其他的
{
var btn=$get(“”)如果此请求成功,请单击隐藏按钮。如何执行此特殊调用?这将有助于实现功能,但当单击虚拟按钮时,页面将刷新。