2

このプログラムの結果に問題があります。「プロテクター」、「ヘッドセット」、「ケース」、および「ゲーム」を結果としてチェックすると、「Kindle」、「Nokia」、および「Wii」が表示されるはずです。ただし、「Kindle」という値は 1 つだけです (これは Google Chrome と Internet Explorer にあります)。さらに、Opera にあるすべての値 (複製も) を受け取ります。これらの問題を解決するのを手伝ってくれませんか。前もって感謝します。

<html>
<head>
<script type="text/javascript">

function product(){ 
    var checkboxes = document.getElementsByName('checkboxes');
    var i=0;
    var j=0;
    var tech = [
    ["Kindle","Protector"],
    ["Iphone","Headset"],
    ["Iphone","US Charger"],
    ["Iphone","USB cable"],
    ["Iphone","Case"],
    ["Nokia","Protector"],
    ["Nokia","Headset"],
    ["Nokia","Case"],
    ["Wii","Games"]
    ];

    for (i=0 ; i < tech.length; i++){
        for(j=0 ; j< checkboxes.length; j++){
            if ((tech[i][1] == checkboxes[j].value)&&(checkboxes[j].checked)){
            document.write(tech[i][0]);
            document.write("<br>");
            }
        }
    }
}
</script>
</head>

<body>

<form name="Accessories">
<input type="checkbox" name="checkboxes" value="Protector"> Protector <br>
<input type="checkbox" name="checkboxes" value="Headset"> Headset <br>
<input type="checkbox" name="checkboxes" value="US Charger"> US Charger <br>
<input type="checkbox" name="checkboxes" value="USB cable"> USB cable <br>
<input type="checkbox" name="checkboxes" value="Case"> Case <br>
<input type="checkbox" name="checkboxes" value="Games"> Games </br>
<input type="button" name="Check" onClick="product()" value="Search a product">
</form>

</body>
</html>
4

2 に答える 2

3

document.write()ページがレンダリングされた後に呼び出すと、ページが完全に消去されます。一部のブラウザーでは、これは JavaScript コード自体が機能しなくなることを意味します。

代わりに試すことができるのはこれです:

  1. <div>ページの最後 (コース内)に a を追加し、<body>「設定」の「id」値を指定します。

  2. コードを変更して内容を設定します。

    var content = "";
    for (i=0 ; i < tech.length; i++){
        for(j=0 ; j< checkboxes.length; j++){
            if ((tech[i][1] == checkboxes[j].value)&&(checkboxes[j].checked)){
              content += tech[i][0] + '<br>';
            }
        }
    }
    document.getElementById("settings").innerHTML = content;
    
于 2013-06-02T16:53:03.527 に答える