JQuery不会触发任何事件

时间:2014-01-24 14:41:11

标签: javascript jquery html asp.net

我有两个ASP页面。一个head.master,其中包含一些内容以及从Default.aspx页面检索的内容。因为我可以从head.master页面获取脚本URL,所以我在那里设置了HTML / JQuery内容,如下所示:

<!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 id="Head1" runat="server">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
</head>
<body>
<form id="form1" runat="server">
... //other contents here
<asp:ContentPlaceHolder id="ContentPlaceHolderSearch" runat="server">
       <!-- Search stuff goes here -->
</asp:ContentPlaceHolder>
... //other contents here
</form>
</body>
</html>

在我的Default.aspx页面中,我有以下内容:

<%@ Page Language="VB" MasterPageFile="head.master" AutoEventWireup="false" CodeFile="default.aspx.vb" Inherits="_default" title="WESTMED Medical Group  - Top Doctors in New York" %>
<%@ Register Assembly="Ektron.Cms.Controls" Namespace="Ektron.Cms.Controls" TagPrefix="CMS" %>
 <%@ OutputCache Duration="900" VaryByParam="none" %>
<asp:Content ID="topContent" ContentPlaceHolderID="topContent" Runat="Server">
... //other stuff goes here
</asp:Content>
<asp:Content ID="ContentPlaceHolderSearch" ContentPlaceHolderID="ContentPlaceHolderSearch" Runat="Server">
            <input style="background: url(images/find.png) no-repeat; padding-left: 20px;" type="text" id="TextBox1" />
            <input id="Button1" type="button" value="Search" class="locButton" />
            <script type = "text/javascript">
                $(document).ready(function () {
                    $("#Button1").click(function () {
                        var textbox = document.getElementById("TextBox1").value;
                        if (textbox.length > 0) {
                            //alert("Search query is not empty and redirecting...");
                            window.location.href = "http://mymed.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending";
                        }
                        else {
                            alert("Search query is empty");
                        }
                    });
                    $('#TextBox1').keyup(function () {
                        var $th = $(this);
                        $th.val($th.val().replace(/[^a-zA-Z0-9]/g, ''));
                    });
                    $('#TextBox1').keypress(function (e) {
                        var textbox = document.getElementById("TextBox1").value;
                        var code = (e.keyCode ? e.keyCode : e.which);
                        if (code == 13) {
                            if (textbox.length > 0) {
                                e.preventDefault();
                                window.location.href = "http://mymed.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending";
                            }
                            else {
                                e.preventDefault();
                                alert("Search query is empty");
                            }
                        }
                    });
                });
    </script> 
</asp:Content>

查看页面的输出HTML源代码,我看到以下内容:

<!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 id="ctl00_Head1">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
</head>
<body>
<form method="post" action="/" id="aspnetForm">
... //other contents goes here
<input style="background: url(images/find.png) no-repeat; padding-left: 20px;" type="text" id="TextBox1" />
            <input id="Button1" type="button" value="Search" class="locButton" />
            <script type = "text/javascript">
                $(document).ready(function () {
                    $("#Button1").click(function () {
                        var textbox = document.getElementById("TextBox1").value;
                        if (textbox.length > 0) {
                            //alert("Search query is not empty and redirecting...");
                            window.location.href = "http://mymed.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending";
                        }
                        else {
                            alert("Search query is empty");
                        }
                    });
                    $('#TextBox1').keyup(function () {
                        var $th = $(this);
                        $th.val($th.val().replace(/[^a-zA-Z0-9]/g, ''));
                    });
                    $('#TextBox1').keypress(function (e) {
                        var textbox = document.getElementById("TextBox1").value;
                        var code = (e.keyCode ? e.keyCode : e.which);
                        if (code == 13) {
                            if (textbox.length > 0) {
                                e.preventDefault();
                                window.location.href = "http://mymed.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending";
                            }
                            else {
                                e.preventDefault();
                                alert("Search query is empty");
                            }
                        }
                    });
                });
    </script>
... //other contents goes here
</form>
</body>
</html>

但是当我按下按钮时没有任何反应。我按回车键没有任何反应。我可以输入特殊字符,但不进行验证。我查看了其他ASPX问题,我认为脚本在内容之前没有加载。请帮我解决这个问题。

控制台截图:

enter image description here

1 个答案:

答案 0 :(得分:1)

回答其他人的好处:

正如您所发现的那样in our chat,您的CMS已经在另一个别名下使用了jQuery。

您找到的链接是: Joomla 2.5 Jquery Cannot call method of null L

但是如果您的CMS中已有其他jQuery,则需要使用该版本。

在处理别人的代码时,不要假设任何事情。使用Fiddler2之类的内容来查看浏览器的内容。