Javascript 如何隐藏表单字段的默认值?

Javascript 如何隐藏表单字段的默认值?,javascript,html,forms,Javascript,Html,Forms,我有一个表格,有两个选项-10和其他-然后在其他旁边有一个文本字段,以便您可以输入所需的金额。以下是我现在的设置方式: <input class="mainForm" id="Amount" name="Amount" type="radio" value="10"> <label class="formFieldOption">10</label> <input class="mainForm" id="Amount" name="Amount"

我有一个表格,有两个选项-10和其他-然后在其他旁边有一个文本字段,以便您可以输入所需的金额。以下是我现在的设置方式:

<input class="mainForm" id="Amount" name="Amount" type="radio" value="10">
  <label class="formFieldOption">10</label>
<input class="mainForm" id="Amount" name="Amount" type="radio" value="other">
  <label class="formFieldOption">Other:  $
    <input class="mainForm" id="Amount" name="Amount" size="10" type="text" value="10">
  </label>
不幸的是,这似乎没有任何作用。我四处寻找改进方法,但什么也找不到

理想情况下,表单将按其预期的方式工作-为10选择收音机将数量设置为10,而文本字段仅在为另一个选择收音机时起作用。如果我能将文本字段中的默认值设置为10,而人们却看不到,那么这并不是绝对必要的,所以这就是我真正需要的


提前谢谢

您需要在JavaScript中附加
.value

var x=document.getElementById("Amount").value;
您需要调用表单的JavaScript
onsubmit

对于另一个问题:我认为除了您已经在追求的JavaScript方式之外,没有其他解决方案

@谢谢你的修复

@杰森:当然,你可以用同样的功能来做这件事。

有一些问题:

var x=document.getElementById("Amount");
var y=document.getElementById("Amount2");
if (typeof x != "undefined") {
  y = x; 
}
getElementById返回and元素或Null。如果它返回一个元素,那么只有当x和y引用同一个(DOM)对象时,
x==y
才会为真。您可能想要比较值

因为Amount是一个表单控件,所以它的值是一个字符串,所以:

if (typeof x != "undefined") {
将始终为true(因为
typeof x
返回“string”)。现在
y=x
只是将x的值赋给y,它不会改变Amount2的值

你想要的可能是:

var x=document.getElementById("Amount").value;

if (x != "") {
  document.getElementById("Amount2").value = x; 
}
然而,为了得到你想要的,我认为你需要做如下的事情。如果选择了$10收音机,它会将“其他”设置为$10。如果选择“其他”,则会清除该值,以便用户可以输入所需内容。如果:


发送金额
$10
其他

金额:$

这对我有用

HTML:

我换了身份证。现在它们都是不同的(数量1、数量2和其他数量输入)。我已经删除了文本输入的
name
属性,以避免在提交表单时将其与表单一起发送(您只需要选中收音机的值)


请注意,元素
id
s在每个HTML/DOM中都应该是唯一的。不幸的是,到目前为止,这些修复都没有起作用。我正在取得进展-由于onsubmit,代码正在运行,我可以通过向getElementById添加.value来更改“amount”的值。问题是,当我提交表格时,更改没有通过。“Amount”仍然是文本字段中的内容,即使我直接将其更改为20作为测试。无论我是通过Action还是Onsubmit提交表单,都会发生这种情况。是什么阻止了更改的进行?我已经需要在提交时将表单发送到另一个网站。我可以用同一个命令调用javascript并将表单发送到网站吗?value是字符串,而不是方法(jQuery将属性转换为方法),因此
document.getElementById(“Amount”).value
var x=document.getElementById("Amount").value;

if (x != "") {
  document.getElementById("Amount2").value = x; 
}
<input class="mainForm" id="Amount1" name="Amount" type="radio" value="10" checked>
<label class="formFieldOption">10</label>
<input class="mainForm" id="Amount2" name="Amount" type="radio">
<label class="formFieldOption">Other:  $
    <input id="OtherAmountInput" class="mainForm" size="10" type="text">
</label>
var Amount2 = document.getElementById("Amount2");
var OtherAmountInput = document.getElementById("OtherAmountInput");

OtherAmountInput.onchange = setAmountToRadio;

function setAmountToRadio(){
    Amount2.value = OtherAmountInput.value;
}