我的jquery脚本中未捕获的异常

时间:2012-06-19 10:45:22

标签: javascript jquery asp.net asp.net-ajax

这是我的代码,我收到了一些错误,
 错误:未捕获的异常:[Exception ...“提示被用户中止”nsresult:“0x80040111(NS_ERROR_NOT_AVAILABLE)”location:“JS frame :: resource://gre/components/nsPrompter.js :: openTabPrompt ::第468行“数据:否]

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="loginform.aspx.cs" Inherits="loginform" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
   <title>Untitled Page</title>
  <script src="js/jquery-1.6.js" type="text/javascript"></script>
   <script type="text/javascript">   
   $(document).ready(function(){
     $("#btnsubmit").click(function(){      
        $.ajax({    
          type: "POST",            
           url: "loginform.aspx/getdataval",
           data:"{'uname':'"+$("#TextBox1").val()+"','passwod':'"+$("#TextBox2").val()+"'}",           
           contentType: "application/json;charset=utf-8",   
           dataType: "json",         
           success: function(msg) {
           alert("welcome");
           AjaxSucceeded(msg);
           },
              error: AjaxFailed
      })
   });
});
           function AjaxSucceeded(result) {
              alert(result.d);
              var Emp=result.d;
             $("#output").append('<p>'+Emp.Sname+ ' ' + Emp.Sno+'</p>');
           }
           function AjaxFailed(result) {
              alert(result.status + ' ' + result.statusText);
              alert("Failure");
           }  

   </script>


</head>
<body>
   <form id="form1" runat="server">
   <div>
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
       <br />
       <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
       <br />

       <asp:Button ID="btnsubmit" runat="server" Text="Button" />
       <div id="output">
       </div>
   </div>
   </form>
</body>
</html>


请帮我找出原因并重新编写代码 提前谢谢。

1 个答案:

答案 0 :(得分:1)

因为这是POST,您需要return false for your form submit(例如,btnsubmit的客户端处理程序)。此外,由于TextBox1TextBox2的类型为<asp:TextBox>,因此您需要捕获其ClientID以在客户端脚本中正确引用它们。下面的代码应该有效。

function AjaxSucceeded(result) {
    alert(result.d);
    var Emp = result.d;
    $("#output").append('<p>' + Emp.Sname + ' ' + Emp.Sno + '</p>');
}

function AjaxFailed(result) {
    alert(result.status + ' ' + result.statusText);
    alert("Failure");
}

$(document).ready(function() {
    $("#btnsubmit").click(function(e) {
        $.ajax({
            "type": "POST",
            "url": "loginform.aspx/getdataval",
            "data": "{'uname':'" + $("#<%=TextBox1.ClientID %>").val() + "','passwod':'" + $("#<%=TextBox2.ClientID %>").val() + "'}",
            "contentType": "application/json;charset=utf-8",
            "dataType": "json",
            "success": function(msg) {
                alert("welcome");
                AjaxSucceeded(msg);
            },
            "error": AjaxFailed
        });
        //required because "type" is "POST"
        e.preventDefault();
        return false;
        //although it's a good idea anyway because we
        //don't want a postback.
    });
});​