将文本框“其他”值分配给单选按钮值

时间:2011-05-09 21:48:53

标签: javascript html

我花了三个多小时试图处理我给出的代码。我从来没有做过javascript。请帮忙。 我有一个带有4个单选按钮的表单,一个指定“其他”,并且旁边是一个应该发布用户指定值的文本框。这是我尝试过的 HTML:

<td id="amount_container">
    <input name="chargetotal" type="radio" value="75.00" onclick="donation_value();" />$75<br />
    <input name="chargetotal" type="radio" value="125.00" onclick="donation_value();" />$125<br />
    <input name="chargetotal" type="radio" value="250.00" onclick="donation_value();" />$250<br />
    <input name="chargetotal" type="radio" value="other" />other
    <input type="text" name="specified" size="10" />
</td>  

javascript:

<script type="text/javascript">
function donation_value(){
    var val = 0;
    for( i = 0; i < document.form1.chargetotal.length; i++ ) {
        if( document.form1.chargetotal[i].checked == true ) {
            val = document.form1.chargetotal[i].value;
            if(val=='other') {
                document.form1.specified.disabled=false;
                document.form1.specified.focus();
                document.form1.chargetotal.value=document.form1.specified.value;
            } else {
                document.form1.specified.disabled=true;
            }
        }
    }
}
</script>

2 个答案:

答案 0 :(得分:0)

修复你的js:

function donation_value(){
    var val = 0;
    var the_form = document.forms['form1'];
    for( i = 0; i < the_form.chargetotal.length; i++ ) {
        if( the_form.chargetotal[i].checked == true ) {
            val = the_form.chargetotal[i].value;
            if(val=='other') {
                the_form.specified.disabled=false;
                the_form.specified.focus();
                the_form.chargetotal.value=the_form.specified.value;
            } else {
                the_form.specified.disabled=true;
            }
        }
    }
}

小提琴:http://jsfiddle.net/maniator/vQNyY/

答案 1 :(得分:0)

看来,你忘了给“其他”电台添加onclick处理程序。 我认为应该是

<input name="chargetotal" type="radio" value="other" onclick="donation_value();"/>

<强>更新

我想我明白你的问题是什么:) 您可以添加回调,在提交页面时将调用该回调。如果选择了“其他”无线电,则此回调将设置值。像

这样的东西
function assignOtherValue() {
    for( i = 0; i < document.form1.chargetotal.length; i++ ) {
        if( document.form1.chargetotal[i].checked == true ) {
            var val = document.form1.chargetotal[i].value;
            if(val=='other') {
                document.form1.chargetotal[i].value=document.form1.specified.value;
            }
        }
    }
    return true;
}

并添加到表单:

<form name="form1" onSubmit="return assignOtherValue();">