我正在尝试使用ajax请求将输入的文本传递给控制器.但是当我试图执行JS文件时,我得到错误"Uncaught TypeError:无法设置null的属性'值'"
这是HTMLcode:
<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>
Run Code Online (Sandbox Code Playgroud)
这是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(){
}
});
}
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题.
Dee*_*epu 17
你没有带id的元素u.这就是错误发生的原因.请注意,全局变量document.getElementById("u").value意味着您尝试使用名称获取input元素的值,u而不是在代码中定义它.
问题可能在于代码正在执行.如果您是执行JavaScript的文档的负责人,即使您的网页中有一个id ="u"的元素,代码也会在DOM加载完成之前执行,因此HTML中并没有真正存在. ..您可以通过将代码移动到结束html标记上方的页面末尾来解决此问题.这是使用jQuery的一个很好的理由.
如果有人因类似问题登陆此页面,我发现如果您的 JavaScript 在表单准备就绪之前在 HEAD 中运行,则可能会发生此错误。将您的 JavaScript 移到页面底部,针对我的情况进行了修复。
好像是这个功能
h_url=document.getElementById("u").value;
Run Code Online (Sandbox Code Playgroud)
您可以帮助自己使用一些“console.log”来查看哪个对象为空。