为什么我不能从javascript(.js)文件中获取文本框的值?

为什么我不能从javascript(.js)文件中获取文本框的值?,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,我一直在努力整理我的代码,并希望将一些JS移到一些自定义的.JS文件中 我对getelementbyid有一个问题,当脚本加载时它无法获取值 错误是“无法获取未定义或空引用的属性”值“我只是将脚本移动到了.JS中,并添加了指向页面标题的链接 function SearchText() { $(".autosuggest").autocomplete({ source: function (request, response) { $.ajax

我一直在努力整理我的代码,并希望将一些JS移到一些自定义的.JS文件中

我对getelementbyid有一个问题,当脚本加载时它无法获取值

错误是“无法获取未定义或空引用的属性”值“我只是将脚本移动到了.JS中,并添加了指向页面标题的链接

function SearchText() {

    $(".autosuggest").autocomplete({

        source: function (request, response) {

            $.ajax({

                type: "POST",

                contentType: "application/json; charset=utf-8",

                url: "/JQueryAutoComplete.aspx/GetCustomerTypeAutoCompleteData",

                data: "{'Customer':'" + document.getElementById('<%=txtCustomerType.ClientID %>').value + "'}",

                dataType: "json",

                success: function (data) {

                    response(data.d);

                },

                error: function test(xhr) {
                    alert(xhr.status + " - " + xhr.statusText);
                }


            });
函数SearchText(){
$(“.autosuggest”).autocomplete({
来源:功能(请求、响应){
$.ajax({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
url:“/JQueryAutoComplete.aspx/GetCustomerTypeAutoCompleteData”,
数据:“{'Customer':'”+document.getElementById(''.value+'}”,
数据类型:“json”,
成功:功能(数据){
答复(数据d);
},
错误:功能测试(xhr){
警报(xhr.status+“-”+xhr.statusText);
}
});

您不能在外部javascript文件中使用ASP.Net语法。因此,
'
将保持原样,这在DOM中不是有效的ID

我建议您需要将ID传递给您的
SearchText
函数,并使用它来查找它。例如:

function SearchText(clientID) {
    //...
    data: "{'Customer':'" + document.getElementById(clientID).value + "'}"
    //...
}

或者更好地将值传递给函数:

function SearchText(clientValue) {
    //...
    data: "{'Customer': '" + clientValue + "' }"
    //...
}
从您的页面中调用它,类似于:

SearchText(document.getElementById('<%=txtCustomerType.ClientID %>').value);
SearchText(document.getElementById(“”).value);

如果你认为我的问题是正确的,你介意为我投票吗,再次感谢。