2011-11-08 16 views
0

ユーザーが高さと高さを選択したときに入力フィールド(センチメートル)を自動的に更新するために、以下のjavascriptを取得しようとしています。それは自動的にセンチメートルを計算する必要があり、動作しません。javascript out update onchange

<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 
+0

デバッグを試しましたか?あなたのコードは実行されていますか?どの部分がうまくいかない? – mrtsherman

+0

'$ F()'関数はどこかで定義されていますか?あなたの 'updateHeights:function()...'は表示されていない 'Profile'オブジェクトの一つのプロパティであると仮定できますか?投稿されたものは有効な構文ではないので、そのオブジェクトの定義に何か問題があるかどうかはわかりません。また、なぜあなたは_my_身長(183cm)をハードコーディングしましたか? – nnnnnn

答えて

1

これはあなたの全体のコードからわずかの抜粋であると仮定すると、プロファイルは、正当なクラス名であり、$ Fがどこかに定義されている、あなたはいくつかのことを逃しています。

まずIDで選択するので、セレクタに#記号を含める必要があります。 次に、オブジェクトを整数として解析しようとしています。入力に含まれる値を選択するには、parseInt($("#feet").val())を使用する必要があります。同様に、値を設定するには、使用する予定です$("#centimeters").val(cm);

関連する問題