簡體   English   中英

ASP.NET UserControl JavaScript未將HTML加載到其變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM