Php 在输入无线电标记中调用javascript函数时出现问题

Php 在输入无线电标记中调用javascript函数时出现问题,php,javascript,html,forms,input,Php,Javascript,Html,Forms,Input,我正在尝试更改输入(键入radio)中的value属性,当更改其他单选按钮时,我想调用一个函数并更改以以下形式发送的值: <table border ='1'> <tr> <th colspan='2'>Thank You</th> </tr> <tr> <td> <input type='radio' name='Choic

我正在尝试更改输入(键入radio)中的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>

非常感谢。
我
$10 
$20
函数更改量(值){
如果(值==5)
文件。填写(“”);
else if(值==10)

document.write(“这正是表单设计的目的。没有理由使用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

另一方面:不鼓励使用表格进行标记,在这种情况下也不需要。上面的代码也会做同样的事情,如果需要,您可以在单选按钮上添加一个边距,使其与5、10和20之间的距离更大。

我同意Sumurai8-听起来您可能只是想将单选输入放入表单中。

但是,如果有一个很好的理由说明情况并非如此,那么下面的内容如何(请参见JSFIDLE中的实际操作-注意JS只是在脚本标记中附加到HTML中,还请注意,我已经整理了一下您的HTML):

(函数(){
函数更改量(元素){
var amountElement=document.getElementById('amount');
var金额=元素值;
amountElement.value=金额;
}
var choices=document.getElementsByName('Choice');
for(var i=0;i

您只需在所有HTML(包括JSFIDLE链接中显示的
)下面的
标记中添加id标记即可。

尝试将id标记添加到每个输入中,并通过idI have hear
document.write()识别它们
不是修改某些内容的好方法。修改元素比编写新元素更好。@对于某些内容,尤其是脚本,document.write是最可靠的选项。在这种情况下,您是对的,最好更改现有元素(或实际使用表单中的单选按钮).一直都是这么简单,非常感谢
(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); }
    }
})();