简单Javascript函数不适用于.ascx文件

简单Javascript函数不适用于.ascx文件,javascript,asp.net,vb.net,colorbox,ascx,Javascript,Asp.net,Vb.net,Colorbox,Ascx,我正在尝试在asp.net和vb.net应用程序的.ascx文件中使用一个简单的javascript函数。我在asp面板标记中包含了以下html代码 <div class="inline" > <asp:CheckBox ID="tick" runat="server" Text="Please tick the box to confirm the above information are

我正在尝试在asp.net和vb.net应用程序的.ascx文件中使用一个简单的javascript函数。我在asp面板标记中包含了以下html代码

                    <div class="inline" >

                     <asp:CheckBox ID="tick" runat="server" Text="Please tick the box to confirm the above information are correct" Checked="false" CssClass="small" onchange="EnableSubmit()" />
                </div>

我感谢你的建议和帮助

多谢各位

下面给出了.ascx文件中的完整代码。如果需要更多信息,请告诉我

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="CandidateRegistration3.ascx.vb"
Inherits="_controls_CandidateRegistration3" %>


然后单击“立即应用”按钮

将出现一个弹出窗口。请提供注册的电子邮件地址。(别担心。它不必是原始电子邮件地址。只要abc@xyz.com好的)


上载文档时,您可以看到表单。该复选框位于页面底部。

在浏览器中,右键单击页面,然后单击“查看源”(或按浏览器的方式)。注意到ID已经更改了吗?这使得它无法找到您的元素来启用它们

<script type="text/javascript">
function EnableSubmit() {  
    if (document.getElementById('<%= tick.ClientId %>').checked == true) {  
        document.getElementById('<%= uxSubmit.ClientId %>').enabled = true;
    }
    else {
        document.getElementById('<%= uxSubmit.ClientId %>').enabled = false;
    }
}
</script>

函数EnableSubmit(){
if(document.getElementById(“”).checked==true){
document.getElementById(“”).enabled=true;
}
否则{
document.getElementById(“”).enabled=false;
}
}

一种解决方案是使用内联服务器端表达式将客户端ID嵌入到脚本中。另一个是改变现状。将ClientIdMode设置为“静态”
将使客户端在客户端和服务器上使用相同的ID,从而避免使用内联表达式。

在浏览器中,右键单击页面,然后单击“查看源代码”(或按浏览器的方式)。注意到ID已经更改了吗?这使得它无法找到您的元素来启用它们

<script type="text/javascript">
function EnableSubmit() {  
    if (document.getElementById('<%= tick.ClientId %>').checked == true) {  
        document.getElementById('<%= uxSubmit.ClientId %>').enabled = true;
    }
    else {
        document.getElementById('<%= uxSubmit.ClientId %>').enabled = false;
    }
}
</script>

函数EnableSubmit(){
if(document.getElementById(“”).checked==true){
document.getElementById(“”).enabled=true;
}
否则{
document.getElementById(“”).enabled=false;
}
}

一种解决方案是使用内联服务器端表达式将客户端ID嵌入到脚本中。另一个是改变现状。将ClientIdMode设置为static将使客户端在客户端和服务器上使用相同的ID,从而避免使用内联表达式。

ASP.NET会损坏设置为runat=“server”的任何对象上的ID。您需要询问它该控件的实际id。例如:

function EnableSubmit() {

    var id = "<%= tick.ClientID %>"; 
    if (document.getElementById(id).checked == true) {

        ...
    }


}
功能启用提交(){
var id=“”;
if(document.getElementById(id).checked==true){
...
}
}

ASP.NET会损坏设置为runat=“server”的任何对象上的ID。您需要询问它该控件的实际id。例如:

function EnableSubmit() {

    var id = "<%= tick.ClientID %>"; 
    if (document.getElementById(id).checked == true) {

        ...
    }


}
功能启用提交(){
var id=“”;
if(document.getElementById(id).checked==true){
...
}
}

ID周围缺少引号。ID周围缺少引号。感谢您的回复。我已经试过你建议的方法了。但仍然不起作用。此文件不包含任何主文件引用。但是,当我右键单击并检查它的元素时,\n我可以看到id名称已更改。@Bashabi客户端上的id现在与服务器上的id匹配吗?(您是否在客户端ID上看到uxSubmit,或其他内容?)要更好地理解我所说的问题,并查看我的页面,请转到以下链接。然后单击“立即应用”按钮。将出现一个弹出窗口。请提供注册的电子邮件地址。(别担心。它不必是原始电子邮件地址。只要abc@xyz.com好的)。上载文档时,您可以看到表单。该复选框位于页面底部。@Bashabi如果您按照我的指示操作,则不需要该复选框。请回答我上次评论中的问题。我已经根据你的建议更改了javascript代码。现在提交按钮的id(当右键单击并检查元素时)是ct100\u Main\u uxCVRegistration\u uxSubmit。感谢您的回复。我已经试过你建议的方法了。但仍然不起作用。此文件不包含任何主文件引用。但是,当我右键单击并检查它的元素时,\n我可以看到id名称已更改。@Bashabi客户端上的id现在与服务器上的id匹配吗?(您是否在客户端ID上看到uxSubmit,或其他内容?)要更好地理解我所说的问题,并查看我的页面,请转到以下链接。然后单击“立即应用”按钮。将出现一个弹出窗口。请提供注册的电子邮件地址。(别担心。它不必是原始电子邮件地址。只要abc@xyz.com好的)。上载文档时,您可以看到表单。该复选框位于页面底部。@Bashabi如果您按照我的指示操作,则不需要该复选框。请回答我上次评论中的问题。我已经根据你的建议更改了javascript代码。现在提交按钮的id(当右键单击并检查元素时)是ct100\u Main\u uxCVRegistration\u uxSubmit。
function EnableSubmit() {

    var id = "<%= tick.ClientID %>"; 
    if (document.getElementById(id).checked == true) {

        ...
    }


}