无法使用javascript分配值
我试过在这里找到的各种东西,但我不能让它工作。下面是我的整个HTML测试文档。我正在使用以下url加载它:无法使用javascript分配值,javascript,safari,Javascript,Safari,我试过在这里找到的各种东西,但我不能让它工作。下面是我的整个HTML测试文档。我正在使用以下url加载它: file:///Users/aaronbratcher/Documents/Tester.html?Donor.firstName=John&Donor.lastNameBusiness=Smith 我期望的是javascript使用URL上传递的值填充这两个文本字段,但是它们没有被填充。日志消息表明已按预期找到所有内容。没有报告错误或警告 我做错了什么 谢谢 <!DOCTYPE h
file:///Users/aaronbratcher/Documents/Tester.html?Donor.firstName=John&Donor.lastNameBusiness=Smith
我期望的是javascript使用URL上传递的值填充这两个文本字段,但是它们没有被填充。日志消息表明已按预期找到所有内容。没有报告错误或警告
我做错了什么
谢谢
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Accept Donation</title>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name = "viewport" content = "width = 320, initial-scale = 1, user-scalable = no">
</head>
<body>
<form name="AcceptDonation" action="http://localhost" onsubmit="return review()" method="get">
<H2>Donor Name</H2>
<div class="table-field">
<input type="text" class = "textField fullWidth" name = "Donor.firstName" id="firstName" autocorrect="off" placeholder="First Name">
</div>
<div class="table-field bottom">
<input type="text" class="textField fullWidth" name = "Donor.lastNameBusiness" id="lastName" autocorrect="off" placeholder="Last Name">
</div>
</form>
<script type='text/javascript'>
var urlParameters = {}
var kMinReceiptRequiredAmount = 250
window.onload = function () {
loadParameters()
}
function loadParameters() {
var url = window.location.search.substring(1)
var parts = url.split("&")
for (var i=0; i < parts.length; i++) {
var parameter = parts[i]
var parameterParts = parameter.split("=")
var parameterKey = decodeURI(parameterParts[0])
var parameterValue = decodeURI(parameterParts[1])
var docObject = document.getElementsByName(parameterKey)
console.log(docObject)
console.log(parameterValue)
if (docObject) {
docObject.value = parameterValue
}
}
}
</script>
</body>
</html>
接受捐赠
捐赠者姓名
var urlParameters={}
var kMinReceiptRequiredAmount=250
window.onload=函数(){
loadParameters()
}
函数loadParameters(){
var url=window.location.search.substring(1)
var parts=url.split(&)
对于(变量i=0;i
函数.getElementsByName()
返回元素的列表,即使页面上只有一个匹配
if (docObject && docObject.length)
docObject[0].value = parameterValue;
您实际上不需要测试返回值是否为非空,因为.getElementsByName()
始终返回节点列表
if (docObject.length)
docObject[0].value = parameterValue;
您正在使用
getElementsByName
,它返回一个nodeList
。因此,当您设置文本字段元素的值时,您需要从列表中访问它,就像在数组中访问它一样
var docObject = document.getElementsByName(parameterKey)
console.log(docObject)
console.log(parameterValue)
if (docObject.length) {
docObject[0].value = parameterValue
}
如果可能的话,我会更改它,以便您通过
id
而不是name
查找元素。如果有多个具有该名称的字段,则使用getElementsByName
非常有用。如果只有一个字段具有该id,则使用getElementById
非常有用,这样您就不必担心使用nodeList
即使您正在记录docObject
,这个问题也可以在控制台中清楚地看到。只有当您意识到括号表示一个对象数组时,这个问题才明显:p