javascript out update onchange

时间:2011-11-08 03:14:32

标签: javascript

我正在尝试获取下面的javascript,以便在用户选择高度和英寸时自动更新下面的输入字段(厘米)。它应该自动计算厘米,它不起作用。

<script type=​"text/​javascript">​
updateHeights:function(type){
    if(type=='english'){
        var feet=parseInt($F('feet'));
        var inches=parseInt($F('inches'));
        var cm=((feet*12+inches)*2.54).round();
        $('centimeters').value=(feet?cm:'');
        } 
        else 
        {
        var cm=parseInt($F('centimeters'))||183;
    if(cm>241||cm<91)cm=183;
        var inches_total=(cm*0.3937).round();
        var feet=(inches_total/12).floor();
        var inches=inches_total%12;
        $('feet').value=feet;
        $('inches').value=inches;
        $('centimeters').value=cm;
    }
}
</script>

<label>Height:</label>
<select id="feet" name="add[feet]" onchange="Profile.updateHeights('english')">
    <option value="">—</option>
    <option value="7">7</option>
    <option value="6">6</option>
    <option value="5">5</option>
    <option value="4">4</option>
    <option value="3">3</option>
</select>ft.&nbsp;&nbsp;
<select id="inches" name="add[inch]" onchange="Profile.updateHeights('english')">
    <option value="0">0</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
</select>in. or&nbsp;
<input id="centimeters" type="text" name="centimeters" maxlength="3" value="178" onchange="Profile.updateHeights('metric')" style="width: 30px;" />
&nbsp;centimeters

1 个答案:

答案 0 :(得分:1)

假设这只是整个代码的摘录,Profile是一个合法的类名,$ F在某处被定义,你错过了一些东西。

首先,您要按ID进行选择,因此您需要在选择器中包含#符号。 其次,您尝试将对象解析为整数。您需要使用parseInt($("#feet").val())来选择输入中包含的值。同样,要设置值,您将需要使用$("#centimeters").val(cm);