[英]ASP.NET UserControl javascript is not loading HTML to its variable
我創建了希望在多個頁面上使用的UserControl。 該控件包含經典的javascript,但由於某些原因,它不會將元素加載到變量中。 客戶端ID看起來不錯。
這是激活javascript的按鈕:
<input type="submit" name="ctl00$ContentPlaceHolder1$ContactList$btn_NewContact" value="Potvrdit" onclick="javascript:return CheckContactName();" id="ContentPlaceHolder1_ContactList_btn_NewContact" class="MyButton" style="color:white;" />
這是文本框:
<input name="ctl00$ContentPlaceHolder1$ContactList$con_fullname" type="text" id="ContentPlaceHolder1_ContactList_con_fullname" class="MyTextBox" />
這是Javascript函數:
function CheckContactName() {
name = document.getElementById("ContentPlaceHolder1_ContactList_con_fullname");
if (name.value == '' | name.value == null) {
return false;
}
UploadContact();
return true;
}
現在,當我在控制台中調試時, name.value是未定義的。 名稱變量本身只是“ [object HTMLInputElement]” 。
因此,無論該文本框中的內容是什么,該函數始終為false。 我還檢查了最終客戶頁面內的所有ID,並且沒有重復項。 你能說出為什么嗎? 謝謝。
我認為您在代碼后面設置了輸入的值,對嗎?
無論如何,您可以嘗試使用document.querySelector
,並且似乎邏輯運算符是錯誤的,您正在使用|
代替||
。
function CheckContactName() {
let name = document.querySelector(
'#ContentPlaceHolder1_ContactList_con_fullname'
);
if ((name.value == '') || (name.value == null) || (name == undefined)) {
return false;
}
UploadContact();
return true;
}
將名稱更改為cname 。
看來,當您在已經包含一些JavaScript函數的頁面上使用控件,並且該函數聲明的變量與usercontrol中的變量具有相同的名稱時,就會發生這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.