开发者问题收集

如何解决 javascript 中未捕获的类型错误:无法设置未定义的属性“值”?

2018-07-17
1187

这是我的脚本,用于从 URL 获取参数并将其存储在输入字段中。 我能够 console.log 参数,但无法将其存储在输入字段中 请帮忙。 我的 javascript 代码。

function getNavUrl() {  
    return window.location.search.replace("?", "");
};
function getParameters(url) {   
    var params = {};
    url = url.toLowerCase();
    url = url.split('&');   
    var length = url.length;
    for(var i=0; i<length; i++) {
        var prop = url[i].slice(0, url[i].search('='));
        var value = url[i].slice(url[i].search('=')).replace('=', '');
        params[prop] = value;    }
    return params;     
};

var a =getParameters(getNavUrl());
var username=a.username;
var password=a.password;
alert(password);
document.getElementById('username').value = username;

我的输入字段。

<input id='username' name='user'  placeholder='mqtt user' value='' ><br/>
<input id='userpassword' name='password' placeholder='mqtt password' value='' >

我收到的错误。

 Uncaught TypeError: Cannot set property 'value' of null
    at yolo.html?username=somename&password=123:31
3个回答

您需要添加文档加载事件:

  document.addEventListener("DOMContentLoaded", function(event) {
     var a =getParameters(getNavUrl());
     var username=a.username;
     var password=a.password;
     alert(password);
     document.getElementById('username').value = username;
 });
RainDev
2018-07-17

尝试这个

document.getElementById('username').value = username;

getElementById 而不是 getElementsById

Oleg Yakovlev
2018-07-17
var username='username'
var password='passwo';
//alert(password);
document.getElementById('username').value = username;
<input id='username' name='user'  placeholder='mqtt user' value='' ><br/>
<input id='userpassword' name='password' placeholder='mqtt password' value='' >

getElementByIdgetElementsById (区别在于字符 s

2018-07-17