- 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/
我已经坚持了好几天了……很抱歉遇到这样的问题,但是我只是F#本身的初学者。由于关于类型提供程序的讨论很多,所以我决定建立一个类型提供程序并撰写一篇有关它的论文。当我开始时,我不知道什么是类型提供程序。
我正在开发LAN项目唤醒功能,但是我想控制局域网中计算机是否打开。但是我不想使用ICMP或WMI(我的网络上有DC)。那么,对于此问题,是否还有其他选择,例如“套接字连接”,请检查特定端口是否正在使用
我们有一个旧的VB6应用程序,该应用程序使用Crystal Reports XI生成打印报告。我们已经通过经验发现,如果Crystal Reports打印引擎选择了错误版本的 usp10.dll (W
我正在尝试获取有效的 Android 权限列表。我知道 http://developer.android.com/reference/android/Manifest.permission.html
嗨,我是 nginx 的新手,我试图在我的服务器(运行 Ubuntu 4)上设置它,它已经运行了 apache。 所以在我 apt-get install 它之后,我尝试启动 nginx。然后我收到这
如何在VB 6中检查对象的类型-除了'TypeName'之外,是否还有其他方法,因为无法通过'TypeName'进行检查,我希望使用类似QuichWatch窗口的方法。 最佳答案 对于对象变量,请使用
我的 JSP 应用程序中有一个错误。发布后我的 session 被清除: YAHOO.util.Connect.asyncRequest('POST', Url, callback, post
我是一名优秀的程序员,十分优秀!