当我更改另一个单选按钮时,我正在尝试更改输入(类型无线电)中的value属性我想调用一个函数并更改表单中发送的值:
<table border ='1'>
<tr>
<th colspan='2'>Thank You</th>
</tr>
<tr>
<td>
<input type='radio' name='Choice' value=5 onchange="changeAmount('5');">
</td>
<td>
I
</td>
</tr>
<tr>
<td>
<input type='radio' name='Choice' value=10 onchange="changeAmount('10');">
</td>
<td>
$10
</td>
</tr>
<tr>
<td>
<input type='radio' name='Choice' value=20 onchange="changeAmount('20');">
</td>
<td>
$20
</td>
</tr>
</table>
<form action="insertPageHere" method="post" target="_top">
function changeAmount(value){
if (value == 5)
document.write("<input type='hidden' name='amount' value='5'>");
else if (value == 10)
document.write("<input type='hidden' t' value='10'>");
else
document.write("<input type='hidden' name='t' value='20'>");
}
</script>
</form>
我试过用php做这个,我遇到了类似的问题,如果有人能提前告诉我如何获得这项工作,那将非常感谢谢谢。
答案 0 :(得分:1)
这正是表单的设计目标。您没有理由使用javascript添加或更改隐藏的输入字段来传递此信息,因为如果您将其放在表单标记之间,这将完全相同。
<form>
<input type='radio' name='amount' value="5"> 5 <br/>
<input type='radio' name='amount' value="10"> 10 <br/>
<input type='radio' name='amount' value="20"> 20
</form>
旁注:不建议使用表格作为标记,在这种情况下也不需要。上面的代码将完全相同,如果需要,您可以为单选按钮添加一个边距,以便从5,10和20中分隔更多。
答案 1 :(得分:0)
我同意Sumurai8 - 听起来你可能只是想将你的无线电输入放在一个表格中。
如果有充分理由不是这样的话,那么下面几行中的内容(请参阅this jsFiddle中的操作 - 注意JS只是在脚本标记中附加到HTML中,还要注意我已经整理了一下你的HTML:
(function() {
function changeAmount(element) {
var amountElement = document.getElementById('amount');
var amount = element.value;
amountElement.value = amount;
}
var choices = document.getElementsByName('Choice');
for (var i=0; i < choices.length; i++) {
var choice = choices[i];
choice.onchange = function() { changeAmount(this); }
}
})();
您只需要在<script type="text/javascript">
标记中,在所有HTML下方(包括jsFiddle链接中显示的<form>
)。