开发者问题收集

未捕获的类型错误:无法将属性“value”设置为 null

2013-04-19
385533

我尝试使用 ajax 请求将输入的文本传递给控制器​​。但是当我尝试执行 JS 文件时,我收到错误“Uncaught TypeError: Cannot set property 'value' of null”..

这是 HTML 代码:

<form action="">
    <input type="text" class="searchbox1" name="search" placeholder="Search for Brand, Store or an Item..." value="text" />
    <input type="button" class="searchbox_submit1" name="submit" value="text" onClick="javascript:getSearchText();">
</form>

这是 JS 代码:

function getSearchText() {
    var searchText = document.getElementByName("search").value;
    h_url=document.getElementById("u").value;
    var theURL = h_url+'search_all/' + deptid + '/' + searchText + '/1';
    $.ajax({
        url : theURL,
        fail: function(){
        },
        success : function() {
        },
        error:function(){
        }
    });
}

请帮我修复这个问题。

3个回答

您没有 id 为 u 的元素。这就是发生错误的原因。 请注意,您正在尝试获取名称为“u”的输入元素的值,但该元素未在您的代码中定义。

웃웃웃웃웃
2013-04-19

问题可能出在代码执行的地方。如果您在执行 JavaScript 的文档头部,即使您的网页中有一个 id="u" 的元素,代码也会在 DOM 加载完成之前执行,因此 HTML 还不存在……您可以通过将代码移动到页面末尾的结束 html 标记上方来解决这个问题。这是使用 jQuery 的一个很好的理由。

MJMacarty
2016-09-20

如果有人因为类似问题访问此页面,我发现如果您的 JavaScript 在表单准备好之前在 HEAD 中运行,则可能会发生此错误。将您的 JavaScript 移至页面底部解决了我的情况。

Ivan Town
2014-07-29