JavaScript在使用外部脚本文件时无法正常工作但在内部工作

时间:2013-07-17 10:17:51

标签: javascript asp.net

我正在为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

2 个答案:

答案 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>