ASP.NET UserControl javascript没有将HTML加载到其变量中



我已经创建了要在多个页面上使用的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中的变量同名时,就会发生这种情况。

最新更新