- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
抱歉英语不好:P
我正在使用 ASP.NET
我正在尝试使用在 Internet 上找到的 JavaScript 为我的电话和手机文本字段设置掩码,但 JS 代码仅适用于位于我的 MasterPage 的字段。我对 JS 没有太多经验(几乎没有),而且我不知道如何解决这个问题,因为我的 Logcat 没有错误。
我尝试在 MasterPage 的头部、正文和 ContentPlaceHolder 内部引用它。
JS代码如下:
function mascara(o, f) {
v_obj = o
v_fun = f
setTimeout("execmascara()", 1)
}
function execmascara() {
v_obj.value = v_fun(v_obj.value)
}
function mtel(v) {
v = v.replace(/\D/g, "");
v = v.replace(/^(\d{2})(\d)/g, "($1)$2");
v = v.replace(/(\d)(\d{4})$/, "$1-$2");
return v;
}
function id(el) {
return document.getElementById(el);
}
window.onload = function () {
id('txtTelefone').onkeypress = function () { //Located at MasterPage - working
mascara(this, mtel);
}
id('txtCelular').onkeypress = function () { //Located at MasterPage - working
mascara(this, mtel);
}
id('telefoneContato').onkeypress = function () { //Located at Contact Page - not working
mascara(this, mtel);
}
id('txtCelularUser').onkeypress = function () { //Located at User Page - not working
mascara(this, mtel);
}
id('txtTelefoneUser').onkeypress = function () { //Located at User Page - not working
mascara(this, mtel);
}
}
正如我之前所说,我尝试在某些地方引用我的JS文件,我尝试的代码是:
<script src="<%# Page.ResolveClientUrl("../Componentes/js/mascaras.js") %>"></script>
<script src="../Componentes/js/mascaras.js"></script>
如您所见,这些字段位于不同的页面中,我也尝试将代码直接放在页面中,但没有成功。
我认为我不需要在这里发布整个 MasterPage,那么我将只放置头部,但如果存在需要,我将编辑该帖子。
<head runat="server">
<title></title>
<link rel="shortcut icon" href="../imagens/icone.ico" type="image/x-icon" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta charset="utf-8" />
<link href="../Componentes/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" />
<link href="../Componentes/fontawesome/css/font-awesome.min.css" rel="stylesheet" media="screen" />
<link href="../Componentes/css/MasterPage.css" rel="stylesheet" />
<link href="../Fontes/Fontes.css" rel="stylesheet" />
<script src="../Componentes/bootstrap/js/jquery-1.12.4.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/ScrollMagic.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/plugins/debug.addIndicators.min.js"></script>
<script src="../Componentes/bootstrap/js/bootstrap.min.js"></script>
<%--Mask Scripts--%>
<script src="<%# Page.ResolveClientUrl("../Componentes/js/mascaras.js") %>"></script>
<script src="../Componentes/js/mascaras.js"></script>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
编辑 1
尝试过这个:
id('<%= txtTelefoneContato.ClientID %>').onkeypress = function () { //Located at Contact Page - Still not working
mascara(this, mtel);
}
id('<%= txtCelularUser.ClientID %>').onkeypress = function () { //Located at User Page - Still not working
mascara(this, mtel);
}
id('<%= txtTelefoneUser.ClientID %>').onkeypress = function () { //Located at User Page- Still not working
mascara(this, mtel);
}
对脚本的引用位于 MasterPage 头部。但问题还是一样
编辑2
当我检查我的页面时收到此消息:
已解决
正如 VDWWD 所解释的,我只是将 JS 代码直接放在 .aspx 页面中并进行了以下修改:
来自:,
id('txtCelularUser').onkeypress = function () {
mascara(this, mtel);
}
至:
id('<%= txtCelularUser.ClientID %>').onkeypress = function () {
mascara(this, mtel);
}
提前谢谢
最佳答案
当使用 JavaScript 访问具有母版页的元素时,您必须像这样使用它。即使没有母版页,使用它也更好。如果您应该更改 ID,则不必在脚本中也更改它。
id('<%= txtTelefoneUser.ClientID %>').onkeypress
如果您查看 HTML 源代码,您会发现该元素的 ID 已从 txtTelefoneUser
更改为像这样的ContentPlaceHolder_txtTelefoneUser
。 Aspnet 添加前缀以确保每个元素都有唯一的 ID。您将在重复数据的元素(如 GridView/Repeater/DataList 等)中看到相同的前缀用法。
更新
如果将 javascript 放入外部文件中,则可以在母版页上放置对它的引用,如下所示(假设 Componentes
是根目录中的文件夹):
<script src="/Componentes/js/mascaras.js" type="text/javascript"></script>
但是<%= txtTelefoneUser.ClientID %>
在外部文件中不起作用,只能在 .aspx 页面上起作用。为了使该工作正常进行,请将这些元素声明为变量,并在 aspx 页面上分配它们,同时在外部 js 文件中使用它们。
下面是演示:
在外部 JavaScript 文件中:
var myElement;
function myFunction() {
myElement.value = "Success!";
}
然后在 .aspx 页面上:
<script type="text/javascript">
myElement = document.getElementById("<%= TextBox1.ClientID %>");
</script>
关于JavaScript 不适用于我的 MasterPage 以外的页面以及未链接到它的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39933312/
我有一个在 masterpage.master.vb 中填充有 Browserhawk 信息的 cookie 集合,例如; Dim useCSS as boolean = 0 Response.Coo
我试图在从内容页面访问母版页时找到一个控件,准确地说是一个图像按钮。以下是母版页 html 代码:
所以我现在面临这个问题几天了,我真的不知道从哪里开始解决这个问题...... 当我尝试创建 hover DropDownMenu 它只是不能与我的 CSS 文件中的其他内容一起使用。它显示按钮本身(一
抱歉英语不好:P 我正在使用 ASP.NET 我正在尝试使用在 Internet 上找到的 JavaScript 为我的电话和手机文本字段设置掩码,但 JS 代码仅适用于位于我的 MasterPage
我在 MasterPage 中有此文本框和提交按钮 Authors Quotes 这是 MasterPage 中的代码,当用户单击搜索按钮时执行 protected void btnSe
我想覆盖 MasterPage 标题。注意:我不是在谈论从内容页面设置部分标题。 我的 MasterPage 中有这个: My Site | 结合我的内容页面上的这个... 向用户提供
我想从用户控件更改母版页中存在的控件值,场景如下: 在用户控件加载方法上,我使用名为“catID”的查询字符串参数来获取类别实体,然后我想将类别标题设置为位于母版页中的标题标签(类别标题)的值。 我试
我的元素文件夹中有多个母版页,路径如下我的元素/MasterPagesFolder/Site.Master 我使用 Site.Master 的元素的页面有这个路径:我的元素/PagesFolder/C
我的 MasterPage 文件中有一个下拉菜单,它下拉 behind aspx 页面上的对象。我使用 CSS 将 100 的 z-index 应用于 masterPage 菜单,将 -1 的 z-i
我目前正在支持 asp.net vb 中的基于 Web 的应用程序。下面这部分代码用于检查 session 并在 session 过期后自动注销用户。另外,我有一个安全窗口,在成功登录时会弹出,并且每
我有一个带有下拉列表的登录页面,您可以从中选择网站的背景颜色。但是我无法将母版页的主体与下拉列表中的选定值相关联。 这是我的 MasterPage 正文的开始标记,这是我得到的下拉列表。
我正在尝试使用 ASP.NET 和 C# 开发多语言网站我的问题是:我想让我的 MasterPage 支持在语言之间切换,但是当我将“InitializeCulture()”放入 masterpage
我还是 MVC 的新手,所以请多多包涵 :-) 我有一个正在开发的社区网站,我想在用户登录后显示我所有页面上有多少用户在线。 我有一个共享 View ,在登录后用作所有页面的布局 (UserLayou
我在 IIS 服务器上发布我的网站时遇到问题,我无法直接访问它,所以我必须依靠其他人在 IIS 上配置我的网站。然而,当我上传我的网站时,出现了这个错误: 第 1 行: 第 2 行: 解析
我试图在 ASP.NET 中名为“samples”的子文件夹中使用 jquery 库,母版页位于根目录中。目前,对 jquery 脚本的引用位于母版页的 head 标签中。如果我创建的页面也在根目录中
我在带有母版页的网络表单内有用户控件。 MasterPage 有一个注销按钮: protected void lbtnLogout_Click(object sender, EventArgs e)
为了简化我们的 SharePoint 环境,我希望有一个集中的单一位置来存储所有母版页,因此我希望直接从 _layouts 目录引用母版页文件。 我将文件添加到“\LAYOUTS\MyMasterPa
早上好,我在使用 MasterPage 和 jQuery 时遇到问题。我使用带有自定义主题的 jQuery UI,并且我喜欢所有按钮的集合设计来设计 jQuery UI 按钮。在 MasterPage
我想知道,在 Page Load我的 MasterPage.Master 的事件哪个页面发送了请求。将在内容中作为子项加载。 假设,用户点击我的网页Login我可以从 Page Load 中获得该值吗
我有一段 JavaScript 可以清除文本框中的数据。该代码在独立页面上运行良好,但在母版页上不起作用。 在默认页面上,我的 JavaScript 是: function doCl
我是一名优秀的程序员,十分优秀!