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.
<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
<input id="centimeters" type="text" name="centimeters" maxlength="3" value="178" onchange="Profile.updateHeights('metric')" style="width: 30px;" />
centimeters
デバッグを試しましたか?あなたのコードは実行されていますか?どの部分がうまくいかない? – mrtsherman
'$ F()'関数はどこかで定義されていますか?あなたの 'updateHeights:function()...'は表示されていない 'Profile'オブジェクトの一つのプロパティであると仮定できますか?投稿されたものは有効な構文ではないので、そのオブジェクトの定義に何か問題があるかどうかはわかりません。また、なぜあなたは_my_身長(183cm)をハードコーディングしましたか? – nnnnnn