【问题标题】:SCRIPT5007 Javascript error in IE9 and lowerIE9 及更低版本中的 SCRIPT5007 Javascript 错误
【发布时间】:2014-08-22 09:21:41
【问题描述】:

我遇到了这个让我发疯的问题。我已经制作了这个在每个浏览器中都可以使用的 Javascript 函数,并且仅在 IE9 及更低版本中出现此错误。

这是我在荷兰语中遇到的错误。

SCRIPT5007: Kan de eigenschap value van een niet-gedefinieerde verwijzing of een verwijzing naar een lege waarde niet instellen

这是翻译版本:

SCRIPT5007:是否可以设置未定义引用的值属性或对空值的引用。

这是我的 Javascript 函数:

        function Calculate()
    {
        var l = document.getElementById('aantal-caps').value;
        var l2 = document.getElementById('aantal-paraplu').value;
        var l3 = document.getElementById('aantal-blue-tooth').value;
        var l4 = document.getElementById('aantal-backpack').value;
        var result = l * 12 + l2 * 12 + l3 * 20 + l4 * 50;
        document.getElementById('totaal').innerHTML = result;
        document.aanvraag.totaal.value = result; 
        var punten = 345; // Aantal spaarpunten van de klant. Die kan jij hier inschieten.
        var bereken = punten - result;
        if(bereken < 0)
            {
                bereken = '<span style="color:#ff0000"><b>Saldo niet toereikend</b></span>';
                document.getElementById("Submitform").disabled = true; 
            } else 
            {
                bereken = punten - result;
                document.getElementById("Submitform").disabled = false; 
            }
        document.getElementById('punten-aantal').innerHTML = bereken;
        document.getElementById('uwpunten').innerHTML = punten;

    }
    window.onload=Calculate;

这是我的 HTML 表格,其中显示了选定的 javascript 值:

<table style="float:left; width:350px; height:247px;">
<tr>
    <th height="15px">Spaarpunten</th>
</tr>
<tr>
    <td>Uw aantal spaarpunten : </td>
    <td><strong style="font-size:14px"><span id="uwpunten" style="color:#0acb00;">0<input type="hidden" name="uwpunten" id="uwpunten" value="" /></span></strong></td>
</tr>
<tr>
    <td>De huidige selectie kost u : </td>
    <td><strong style="font-size:14px"><span id="totaal" style="color:#F00;">0<input type="hidden" name="totaal" id="totaal" value="" /></span></strong></td>
</tr>
<tr>
    <td>-------------------------------</td>
    <td>-----</td>
</tr>
<tr>
    <td>U heeft nog : </td>
    <td><strong style="font-size:14px"><span id="punten-aantal" style="color:#0acb00;">0<input type="hidden" name="punten-aantal" id="punten-aantal" value="" /></span></strong></td>
</tr>

这是我的选择表格:

    <table width="700" cellpadding="3" cellspacing="3" style="float:left;">
    <tr>
        <th>Kies een product</th>
    </tr>
    <tr>
        <td><img src="cap.jpg" /></td>
        <td><img src="paraplu.jpg" /></td>
        <td><img src="bandenspeaker.jpg" /></td>
        <td><img src="backpack.jpg" /></td>
    </tr>
    <tr>
        <td><select id="aantal-caps" name="aantal-caps" onChange="Calculate();">
                <option value="0" selected="selected">Kies het aantal</option>
                <option value="1" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "1") {echo "selected='selected'"; } ?>>1</option>
                <option value="2" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "2") {echo "selected='selected'"; } ?>>2</option>
                <option value="3" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "3") {echo "selected='selected'"; } ?>>3</option>
                <option value="4" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "4") {echo "selected='selected'"; } ?>>4</option>
                <option value="5" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "5") {echo "selected='selected'"; } ?>>5</option>
                <option value="6" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "6") {echo "selected='selected'"; } ?>>6</option>
                <option value="7" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "7") {echo "selected='selected'"; } ?>>7</option>
                <option value="8" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "8") {echo "selected='selected'"; } ?>>8</option>
                <option value="9" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "9") {echo "selected='selected'"; } ?>>9</option>
                <option value="10" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-caps']) == "10") {echo "selected='selected'"; } ?>>10</option>
            </select>
        </td>
        <td><select id="aantal-paraplu" name="aantal-paraplu" onChange="Calculate();">
                <option value="0" selected="selected">Kies het aantal</option>
                <option value="1" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "1") {echo "selected='selected'"; } ?>>1</option>
                <option value="2" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "2") {echo "selected='selected'"; } ?>>2</option>
                <option value="3" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "3") {echo "selected='selected'"; } ?>>3</option>
                <option value="4" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "4") {echo "selected='selected'"; } ?>>4</option>
                <option value="5" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "5") {echo "selected='selected'"; } ?>>5</option>
                <option value="6" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "6") {echo "selected='selected'"; } ?>>6</option>
                <option value="7" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "7") {echo "selected='selected'"; } ?>>7</option>
                <option value="8" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "8") {echo "selected='selected'"; } ?>>8</option>
                <option value="9" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "9") {echo "selected='selected'"; } ?>>9</option>
                <option value="10" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-paraplu']) == "10") {echo "selected='selected'"; } ?>>10</option>
            </select>
        </td>
        <td><select id="aantal-blue-tooth" name="aantal-blue-tooth" onChange="Calculate();">
                <option value="0" selected="selected">Kies het aantal</option>
                <option value="1" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "1") {echo "selected='selected'"; } ?>>1</option>
                <option value="2" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "2") {echo "selected='selected'"; } ?>>2</option>
                <option value="3" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "3") {echo "selected='selected'"; } ?>>3</option>
                <option value="4" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "4") {echo "selected='selected'"; } ?>>4</option>
                <option value="5" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "5") {echo "selected='selected'"; } ?>>5</option>
                <option value="6" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "6") {echo "selected='selected'"; } ?>>6</option>
                <option value="7" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "7") {echo "selected='selected'"; } ?>>7</option>
                <option value="8" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "8") {echo "selected='selected'"; } ?>>8</option>
                <option value="9" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "9") {echo "selected='selected'"; } ?>>9</option>
                <option value="10" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-blue-tooth']) == "10") {echo "selected='selected'"; } ?>>10</option>
            </select>
        </td>
        <td><select id="aantal-backpack" name="aantal-backpack" onChange="Calculate();">
                <option value="0" selected="selected">Kies het aantal</option>
                <option value="1" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "1") {echo "selected='selected'"; } ?>>1</option>
                <option value="2" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "2") {echo "selected='selected'"; } ?>>2</option>
                <option value="3" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "3") {echo "selected='selected'"; } ?>>3</option>
                <option value="4" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "4") {echo "selected='selected'"; } ?>>4</option>
                <option value="5" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "5") {echo "selected='selected'"; } ?>>5</option>
                <option value="6" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "6") {echo "selected='selected'"; } ?>>6</option>
                <option value="7" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "7") {echo "selected='selected'"; } ?>>7</option>
                <option value="8" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "8") {echo "selected='selected'"; } ?>>8</option>
                <option value="9" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "9") {echo "selected='selected'"; } ?>>9</option>
                <option value="10" <?php if(isset($_POST['Submitform']) && strip_tags($_POST['aantal-backpack']) == "10") {echo "selected='selected'"; } ?>>10</option>
            </select>
        </td>
    </tr>

很抱歉发布所有代码,但大多数情况下最好了解我在做什么。

这个字段:

<td><strong style="font-size:14px"><span id="totaal" style="color:#F00;">0<input type="hidden" name="totaal" id="totaal" value="" /></span></strong></td>

是唯一有效的字段。其他两个字段在页面加载时以及在我的表单中选择另一个字段时出现 SCRIPT5007 错误。

为什么这只发生在 IE9 及更低版本中?有没有办法解决这个问题?

【问题讨论】:

  • 如果是浏览器错误,显示渲染的 HTML,而不是源标记。如果你能告诉我们错误来自哪一行代码,那将很有用(IE 通常会给你一个文件和行号)
  • 感谢您让我朝着正确的方向前进!:) 此行导致错误:document.aanvraag.totaal.value = result;
  • 其实SCRIPT5007的英文错误文本是:“Unable to get value of the property variable_name: object is null or undefined.”

标签: javascript html internet-explorer


【解决方案1】:
document.aanvraag.totaal.value = result; 

这导致了我的错误

【讨论】:

  • 请解释为什么这是问题的修复,以便它可以帮助任何看到此问题/答案的未来用户。
  • 我发现像SCRIPT50xx 这样的错误是|脚本错误代码(dah)。在进一步调查之后,我发现错误5007 as Run-time error 说:Object Expected 您试图在 Object 以外的类型的对象上调用 Object.prototype.toString 或 Object.prototype.valueOf 方法。此类调用的对象必须是 Object 类型。
猜你喜欢
  • 2015-12-18
  • 2017-03-09
  • 2014-11-19
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 2014-09-29
  • 2016-09-10
相关资源
最近更新 更多