Javascript 从HTML获取输入并返回结果

Javascript 从HTML获取输入并返回结果,javascript,html,Javascript,Html,我正在尝试制作一个应用程序来计算你在其他天体上的重量。当使用weightConverter(object,weight)调用函数时,该函数执行它应该执行的操作 但我似乎无法从HTML表单获取输入 如何从HTML获取输入? 还有,有没有更好的方法将结果返回到HTML 函数权重转换器(){ var object=document.getElementsByName('object'); var-weight=document.getElementsByName('weight'); 变量对象={

我正在尝试制作一个应用程序来计算你在其他天体上的重量。当使用
weightConverter(object,weight)调用函数时,该函数执行它应该执行的操作

但我似乎无法从HTML表单获取输入

如何从HTML获取输入?
还有,有没有更好的方法将结果返回到HTML

函数权重转换器(){
var object=document.getElementsByName('object');
var-weight=document.getElementsByName('weight');
变量对象={
孙:28,,
汞:0.38,
金星:0.91,
月亮:0.166,
火星:0.38,
木星:2.14,
土星:0.91,
天王星:0.86,
海王星:1.1,
冥王星:0.8
}
var结果=权重*对象[对象];
document.getElementById(“calc”).innerHTML=object;
}
。。。。
输入重量(千克):

选择对象:

太阳 水星 维纳斯 月亮 火星 木星 土星 天王星 海王星 冥王星 算算!
删除表单标签,使用一个简单的按钮代替提交按钮,这样你就可以开始工作了。尝试:

<h2 id="calc">....</h2>


  <p> Input weight in kilograms: </p>
  <input id="kilo" type="text" name="weight">

  <p>Choose object:</p>
  <label><input name="object"type="radio" value="Sun">Sun</label>
  <label><input name="object"type="radio" value="Mercury">Mercury</label>
  <label><input name="object"type="radio" value="Venus">Venus</label>
  <label><input name="object"type="radio" value="Moon">Moon</label> 
  <label><input name="object"type="radio" value="Mars">Mars</label>     
  <label><input name="object"type="radio" value="Jupiter">Jupiter</label> 
  <label><input name="object"type="radio" value="Saturn">Saturn</label> 
  <label><input name="object"type="radio" value="Uranus">Uranus</label> 
  <label><input name="object"type="radio" value="Neptune">Neptune</label> 
  <label><input name="object"type="radio" value="Pluto">Pluto</label> 



  <button onclick="weightConverter();" >Calculate!</button>
。。。。
输入重量(千克):

选择对象:

太阳 水星 维纳斯 月亮 火星 木星 土星 天王星 海王星 冥王星 算算!
有几件事你必须改变。您需要获取选定选项(而不是对象)的
值,并且需要获取权重(而不是元素)的值

var object=document.getElementsByName('object')-这将获取所有选项,而不仅仅是所选选项。您可以循环查看结果以查看哪个是选中的,但是您可以直接查询所选的,类似于此:
document.querySelector('input[name=“object”]:checked')

var-weight=document.getElementsByName('weight')-这也将获得一个集合,但由于元素上有标识符,您可以直接查询它的值,类似于:
document.getElementById('kilo').value

除此之外,其余的都还可以,只是您尝试将
对象
分配回text out put元素,该元素现在是正确的值

函数权重转换器(){
var selectedObjectValue=document.querySelector('input[name=“object”]:checked')。值;
var-weight=document.getElementById('kilo')。值;
变量对象={
孙:28,,
汞:0.38,
金星:0.91,
月亮:0.166,
火星:0.38,
木星:2.14,
土星:0.91,
天王星:0.86,
海王星:1.1,
冥王星:0.8
}
var结果=权重*对象[selectedObjectValue];
document.getElementById(“calc”).innerHTML=result;
}
。。。。
输入重量(千克):

选择对象:

太阳 水星 维纳斯 月亮 火星 木星 土星 天王星 海王星 冥王星 算算!
您需要迭代
document.getElementsByName('object')
以获取所选值,并迭代
document.getElementsByName('weight')[0]。value
以从输入字段获取值

函数权重转换器(){
var object=document.getElementsByName('object');
var-weight=document.getElementsByName('weight')[0]。值;
var selectedObject=“”;
对于(变量i=0;i
。。。。
输入重量(千克):

选择对象:

太阳 水星 维纳斯 月亮 火星 木星 土星 天王星 海王星 冥王星
算算您有一个输入类型文本,因此最好使用id而不是名称 不要试图使你的代码复杂化


函数权重转换器(){
var radios=document.getElementsByName('object');
对于(变量i=0,长度=radios.length;i
选择对象:

太阳 水星 维纳斯 月亮 火星 木星 土星 天王星 海王星 冥王星 算算!
Oops对不起!!在那里接得好!!使用下拉列表,同时确保给出元素的“id”。还有,学习HTML@zerohero下拉列表在美学上肯定会更有意义,而且会更加用户友好。
weight
输入元素有标识符,其他元素不需要标识符。单选按钮代表一个组,每个按钮上都不需要id,
name
工作正常,并且是在POST中正确发布数组所需的全部