我正在为ASP.NET Web应用程序中的表单中的必填字段实现JavaScript验证。
我正在获取要验证的控件的ClientID并从中提取值并检查它是否为null:
function validate()
{
if(document.getElementById('<%=textbox1.clientID %>').value=="")
{
alert('mandatory');
return false;
}
}
我在客户端点击按钮验证。当上述函数放在同一页面中时,此代码可以正常工作。
但是当我将它放在外部文件中并调用它时,代码无效。
它正在调用外部.js文件中的函数,并抛出一条错误消息,例如 object not found at document.geteleementByid()line 。
答案 0 :(得分:0)
您的JavaScript代码正在调用服务器端属性textbox1.ClientID
。为了将代码放在.js文件中,您需要在.aspx文件中的某处调用该服务器端属性,并将您获得的值发送到JavaScript函数:
function callValidation() {
return validation('<%= textbox1.ClientID %>');
}
然后你的.js文件将包含实际的验证方法:
function validate(elementId)
{
if(document.getElementById(elementId).value=="")
{
alert('mandatory');
return false;
}
}
答案 1 :(得分:0)
尝试在方法中添加参数。当你调用外部方法时,添加参数'&lt;%= textbox1.clientID%&gt;'如下。
<javascript>
var param = document.getElementById('<%=textbox1.clientID %>').value;
validate(param);
</javascript>