0

私はHTMLJSコードを持っています:

<form action="/resize" method="GET" name="resolutionForm">
 <select name="res" id="res" onchange="checkzoom(this.value); checkcut('centercropcheck')">
  <option value="original"> Original</option><option value="800x600">800x600</option>
 </select>
 <input type="checkbox" id="stretchcheck" name="stretch" onclick="verificastretch(this.id);">Esticar
 <div id="results">
  <span>original: </span>
  <span>200x200</span>
  <span>zoom: </span>
  <span>0x</span>
  <span id="zoom">0x</span></span>
 </div>
</form>
<script type="text/javascript">
 function elembyid(id){
    return document.getElementById(id);
 }
 function checkzoom(v){
    if(v == '200x200' || v == 'original'){
        var zoom = '0x';
    }else{
        if(elembyid('stretchcheck').checked){
            verificastretch('stretchcheck');
        }else{
            var novow = Number(v.substr(0,v.lastIndexOf("x")));
            var novoh = Number(v.substr(v.lastIndexOf("x") +1, v.length));
            //alert('novow'+novow+'novoh'+novoh);
            var tamzoomw = novow / 200;
            var tamzoomh = novoh / 200;
            if(tamzoomw < tamzoomh){
                var zoom = (tamzoomw.length > 3? tamzoomw.toFixed(2) : tamzoomw)+'x';
            }else{
                var zoom = (tamzoomh.length > 3? tamzoomh.toFixed(2) : tamzoomh)+'x';
            }
        }
        elembyid('zoom').innerHTML = zoom;
    }
 }
 function verificastretch(id){
    var v = elembyid('res').value;
    if(v == '200x200' || v == 'original'){
        checkzoom(v);
    }else{
        if(elembyid(id).checked){
            //alert('aqui');
            var novow = Number(v.substr(0,v.lastIndexOf("x")));
            var novoh = Number(v.substr(v.lastIndexOf("x") +1, v.length));
            //alert('novow'+novow+'novoh'+novoh);
            var tamzoomw = novow / 200;
            var tamzoomh = novoh / 200;
            var zoom = (tamzoomw.length > 3? tamzoomw.toFixed(2) : tamzoomw)+'x '+(tamzoomh.length > 3? tamzoomh.toFixed(2) : tamzoomh)+'x';
            alert(zoom);
            elembyid('zoom').innerHTML = zoom;
        }else{
            checkzoom(v);
        }
    }
 }
</script>

ストレッチのチェックボックスがチェックされていて、select resの選択されたオプションを変更すると、div id = "result"で未定義になります。この問題を解決するにはどうすればよいですか?ファイルでは、コードにはそのような';'がありません コピー時にエラーが発生したためです。

4

1 に答える 1

0

if 条件の後

        if(elembyid('stretchcheck').checked){
            verificastretch('stretchcheck');
        }else{
            …
        }

が終了し、スパンがverificastretchに正しく設定されました。スパンは変数で上書きされます:zoom4x 3xzoomundefinedzoom

        elembyid('zoom').innerHTML = zoom;

その行がelse句内にあると思います。

これは、デバッガーを使用してコードを関数checkzoomからステップ実行することで見つけることができました。

于 2013-02-19T21:59:53.637 に答える