为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET UserControl javascript 未将 HTML 加载到其变量

ASP.NET UserControl javascript 未将 HTML 加载到其变量

C#
慕哥6287543 2021-10-31 11:03:28
我创建了希望在多个页面上使用的 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是未定义的。该名变量本身就是“[对象HTMLInputElement]”。所以不管那个文本框中是什么,这个函数总是假的。我还检查了最终客户页面中的所有 ID,没有重复。你能说出这是为什么吗?谢谢。
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

名称更改为cname

似乎当您在已经包含一些 JavaScript 函数的页面上使用控件并且该函数声明与 usercontrol 中的变量名称相同的变量时 - 这就会发生。


查看完整回答
反对 回复 2021-10-31
?
HUX布斯

TA贡献1876条经验 获得超6个赞

我假设您在后面的代码中设置了输入值,对吗?


无论如何,您可以尝试使用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;

}


查看完整回答
反对 回复 2021-10-31
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信