拉丁的傳說(shuō)
2022-11-11 13:31:26
我正在使用 asp.net 中的母版頁(yè),并在 chrome 瀏覽器檢查工具控制臺(tái)中收到以下錯(cuò)誤。未捕獲的類(lèi)型錯(cuò)誤:無(wú)法在 HTMLInputElement.onclick 的 myFunction (StudentPassword.aspx:258) 處設(shè)置屬性“類(lèi)型”為 null我想問(wèn)題出在腳本標(biāo)簽上。我應(yīng)該把它放在哪里?在標(biāo)簽內(nèi)部還是在內(nèi)容頁(yè)的底部還是在母版頁(yè)的底部?母版頁(yè)是: <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Student.master.cs" Inherits="Project_Placements.Student" %> <!DOCTYPE HTML> <HTML> <head runat="server"> </head> <body> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> <script type="text/javascript"> function myFunction() { var checkBox = document.getElementById("myCheck"); var pwd = document.getElementById("password"); if (checkBox.checked == true) { pwd.type = 'password'; } else { pwd.type = 'text'; } } } </script> </body> </html>內(nèi)容頁(yè)代碼如下: <%@ Page Title="" Language="C#" MasterPageFile="~/Student.Master" AutoEventWireup="true" CodeBehind="StudentPassword.aspx.cs" Inherits="Project_Placements.WebForm7" %> <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <form id="form1" runat="server"> <asp:TextBox ID="password" runat="server" TextMode="Password" ></asp:TextBox> <label for="myCheck">Show Password :</label> <input type="checkbox" id="myCheck" onclick="myFunction()"> </form> </asp:Content>
2 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
ASP.Net 將所有id
從服務(wù)器端運(yùn)行的父元素鏈接到id
當(dāng)前元素的所有元素,除非在服務(wù)器上被覆蓋。所以輸出id
實(shí)際上看起來(lái)像ContentPlaceHolder1$Content3$form1$password
.
您可以使用 ends-with 選擇器來(lái)省略它。
var pwd = document.querySelector("[id$=password]").
但是請(qǐng)注意,仍然選擇唯一的id
,這也將是唯一的,使用 end-with。
或者,您可以使用數(shù)據(jù)屬性并選擇:
<asp:TextBox ID="password" runat="server" TextMode="Password" data-id="password" /> var pwd = document.querySelector("[data-id=password]");
最后你可以使用類(lèi)似的東西:
var pwd = document.getElementById('<%=password.ClientID %>');
然而我從來(lái)沒(méi)有真正喜歡過(guò)它,它要求腳本是內(nèi)聯(lián)的。

慕的地8271018
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
您收到錯(cuò)誤是因?yàn)樵谕耆秩?DOM 之前加載了腳本。嘗試將腳本的內(nèi)容放在 document.ready 中,這應(yīng)該可以解決問(wèn)題。
添加回答
舉報(bào)
0/150
提交
取消