简单Javascript函数不适用于.ascx文件
我正在尝试在asp.net和vb.net应用程序的.ascx文件中使用一个简单的javascript函数。我在asp面板标记中包含了以下html代码简单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
<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) {
...
}
}