将 Javascript 插入 ASP.Net 页
Inserting Javascript into ASP.Net page
我有密码
<script type="text/javascript">
function validateLength(objectSource, args) {
var a = document.getElementById('<%=txtUserName.ClientID%>').value;
args.IsValid = (a.length >= 5 && a.length <= 10);
}
</script>
我的 ASP.NET 页面中有。
这很好用。将验证文本框以确保它在一定长度之间。
但是我正在尝试整理我的页面代码。所以决定把这个小函数放到一个单独的 javascript 文件中。
<script type="text/javascript" src="Scripts/MyJS.js">
</script>
页面加载正常,然后在验证出现时失败。我猜它无法访问文本框(txtUserName)。
我的问题是:如何让它工作?
我收到错误消息
0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'value': object is null or undefined
当 javascript 触发时
您页面上下文中的 <%=txtUserName.ClientID%>
运行。这在单独的 .js 文件中不起作用。
单独的 .js 文件不会 运行 任何 asp.net 代码。
你可以这样做:
JS文件:
function validateLength(objectSource, args) {
var a = document.getElementById(window.myValidatorId).value;
args.IsValid = (a.length >= 5 && a.length <= 10);
}
ASP
<script type="text/javascript">
window.myValidatorId = '<%=txtUserName.ClientID%>';
</script>
或者从页面上隐藏的输入字段中读取 ID。
当您包含 javascript 文件时,代码部分
<%=txtUserName.ClientID%>
未呈现。
您必须通过两种方式更改 javascript 函数
修复控件名称
<script type="text/javascript">
function validateLength(objectSource, args) {
var a = document.getElementById('txtUserName').value;
args.IsValid = (a.length >= 5 && a.length <= 10);
}
</script>
或添加参数
<script type="text/javascript">
function validateLength(objectSource, args, nameOfControl) {
var a = document.getElementById(nameOfControl).value;
args.IsValid = (a.length >= 5 && a.length <= 10);
}
</script>
然后您可以从您的页面调用该函数,参数 nameOfControl 可以是
<%=txtUserName.ClientID%>
例如
validateLength(objectSource, args, <%=txtUserName.ClientID%>)
我有密码
<script type="text/javascript">
function validateLength(objectSource, args) {
var a = document.getElementById('<%=txtUserName.ClientID%>').value;
args.IsValid = (a.length >= 5 && a.length <= 10);
}
</script>
我的 ASP.NET 页面中有。
这很好用。将验证文本框以确保它在一定长度之间。
但是我正在尝试整理我的页面代码。所以决定把这个小函数放到一个单独的 javascript 文件中。
<script type="text/javascript" src="Scripts/MyJS.js">
</script>
页面加载正常,然后在验证出现时失败。我猜它无法访问文本框(txtUserName)。
我的问题是:如何让它工作?
我收到错误消息
0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'value': object is null or undefined
当 javascript 触发时
您页面上下文中的 <%=txtUserName.ClientID%>
运行。这在单独的 .js 文件中不起作用。
单独的 .js 文件不会 运行 任何 asp.net 代码。
你可以这样做:
JS文件:
function validateLength(objectSource, args) {
var a = document.getElementById(window.myValidatorId).value;
args.IsValid = (a.length >= 5 && a.length <= 10);
}
ASP
<script type="text/javascript">
window.myValidatorId = '<%=txtUserName.ClientID%>';
</script>
或者从页面上隐藏的输入字段中读取 ID。
当您包含 javascript 文件时,代码部分
<%=txtUserName.ClientID%>
未呈现。
您必须通过两种方式更改 javascript 函数 修复控件名称
<script type="text/javascript">
function validateLength(objectSource, args) {
var a = document.getElementById('txtUserName').value;
args.IsValid = (a.length >= 5 && a.length <= 10);
}
</script>
或添加参数
<script type="text/javascript">
function validateLength(objectSource, args, nameOfControl) {
var a = document.getElementById(nameOfControl).value;
args.IsValid = (a.length >= 5 && a.length <= 10);
}
</script>
然后您可以从您的页面调用该函数,参数 nameOfControl 可以是
<%=txtUserName.ClientID%>
例如
validateLength(objectSource, args, <%=txtUserName.ClientID%>)