2012-09-09 78 views
0

點擊here作爲jquery鍵盤的來源。當我使用母版頁時,爲什麼Jquery鍵盤不工作?

我已經在我的項目中以單獨的形式使用了這個鍵盤,它可以工作,但是每當我在另一個形式的母版頁中使用相同的東西時,它都不起作用。在我的母版頁全部關閉,他需要引用添加(相同的參考也被添加在表格的頭部,以防萬一!)

<script src="../App_Themes/Default/js/jquery-1.6.1.js" type="text/javascript"></script> 

<%--<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>--%> 

<script src="../App_Themes/Default/js/jquery.keypad.js" type="text/javascript"> </script> 

<script type="text/javascript"> 
$(function() { 
$('#txtFTP').keypad(); 

}); 
</script> 

即使我刪除同一形式的我的母版的參考,我更換我的內容佔位符與HTML標籤的jQuery鍵盤的作品。

任何人都可以建議我爲什麼不工作?

更新1

爲了測試更多關於這個問題,我已經創建了一個新的測試母版。代碼:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="TestMasterPage.master.cs" 

Inherits="Member_TestMasterPage" %> 

<!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> 
<asp:ContentPlaceHolder id="head" runat="server"> 
</asp:ContentPlaceHolder> 
</head> 
<body> 
<form id="form1" runat="server"> 
    <div> 
    <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> 

    </asp:ContentPlaceHolder> 
    </div> 
</form> 
</body> 
</html> 

正如你可以看到,在主頁面沒有引用jquery。

然後我創建了一個新的test.aspx頁面。代碼:

<%@ Page Language="C#" MasterPageFile="~/Member/TestMasterPage.master" 

AutoEventWireup="true" CodeFile="2.aspx.cs" Inherits="_2" %> 

<asp:Content ContentPlaceHolderID="head" runat="server"> 
<script src="../App_Themes/Default/js/jquery-1.6.1.js" type="text/javascript"> 
</script> 

<script src="../App_Themes/Default/js/jquery.keypad.js" type="text/javascript"> 
</script> 

<script type="text/javascript"> 
    $(function() { 
$('#txtFTP').keypad(); 

    }); 
</script> 
</asp:Content> 

<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
<div> 
    <asp:TextBox ID="txtFTP" SkinID="Mini" runat="server" TextMode="Password" 
    ForeColor="Gray" /> 
</div> 
</form> 

</asp:Content> 

但jQuery鍵盤不起作用。但是,如果我刪除主頁面引用並相應地更改頁面,鍵盤的作品!代碼:

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

<!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="../App_Themes/Default/js/jquery-1.6.1.js" type="text/javascript"></script> 

<script src="../App_Themes/Default/js/jquery.keypad.js" type="text/javascript"> 
</script> 

<script type="text/javascript"> 
$(function() { 
$('#txtFTP').keypad(); 

}); 
</script> 

</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:TextBox ID="txtFTP" SkinID="Mini" runat="server" TextMode="Password" 
ForeColor="Gray" /> 
</div> 
</form> 
</body> 
</html> 

我在做什麼錯了?爲什麼我無法使用母版頁工作?

回答

2

您的腳本src路徑不會總是有效。只有當您的頁面位於根文件夾內的文件夾中時,它們纔會起作用,但如果您已經位於根目錄或更深處,則它們不會起作用。

母版頁機制使問題更復雜。如果您不使用母版頁,那麼不難看出您的鏈接是否可行。你只需要看看你的頁面路徑是否與src值一致,例如,如果你的頁面位於一個文件夾中,它就可以工作。然而,當你進入母版頁時,你的鏈接將相對於頁面而不是母版頁,因此當你編寫母版頁時,你不知道你在樹中的位置。

該解決方案是與像服務器的幫助下指定從根鏈接:

<script runat="server" src="~/App_Themes/Default/js/jquery-1.6.1.js" type="text/javascript"></script> 

(你的「App_Themes文件」文件夾應在根文件夾)

+0

形式和母版頁位於同一個文件夾中。我用「〜」但這並沒有解決問題。即使我將鍵盤的所有引用放在我的表單的標題內容佔位符中,而不是在母版頁中,它也不起作用。 –

+0

您需要調試javascript,看看它爲什麼不起作用。 –

相關問題