Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用bool类型的javascript函数_Javascript_Asp.net_Ajax - Fatal编程技术网

调用bool类型的javascript函数

调用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

我正在尝试使用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="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(“”)如果此请求成功,请单击隐藏按钮。如何执行此特殊调用?这将有助于实现功能,但当单击虚拟按钮时,页面将刷新。