我正在使用我在 2006 年制作的旧 VB.NET 玩具,并尝试将其转换为 HTML/JavaScript/CSS3,以便将其功能嵌入到 Tumblr 上的页面中。但是,我已经设法将元素 99% 从 VB.NET 形式转换为 JavaScript 形式。问题是,该元素不会编码。
下面是我的 Web 端口正文的 HTML:
<table id="jewelryjiddyapp"><tr>
<td colspan="2"><div id="logofield"><p id="JiddyMainLogo">Jewelry Jiddy's</p>
<p id="JiddySubLogo">Wedding Ring Store</p></div></td>
<td>
<div class="fieldlabel" style="margin-top:25px;">Model Name</div>
<form>
<select id="modelBox">
<option id="heartsinlavaflow">Hearts in Lavaflow</option>
<option id="scarofafrica">Scar of Africa</option>
<option id="monkeysuncle">Monkey's Uncle</option>
<option id="flatteringfool">Flattering Fool</option>
<option id="stealdeal">Steal Deal</option>
<option id="arweethearyet">Arwee Thearyet</option>
<option id="checkbouncer">Checkbouncer</option>
<option id="worthyoursoul">Worth-Your-Soul</option>
<option id="therough">The Rough</option>
<option id="canyudrspecial">Canyu Dr. Special</option>
<option id="viderzhen">Viderzhen</option>
<option id="fiberglasschicken">Fiberglass Chicken</option>
<option id="pinkpuma">Pink Puma</option>
</select>
</form>
<p class="limitnotice">Limit 1 Model Type per Sale</p>
</td>
</tr><tr>
<td>
<div class="fieldlabel">Number of Items</div>
<form id="noifield">
<input id="NOI-1" name="noi" type="radio" />1
<input id="NOI-2" name="noi" type="radio" />2
<input id="NOI-3" name="noi" type="radio" />3
<input id="NOI-4" name="noi" type="radio" />4
<input id="NOI-5" name="noi" type="radio" />5
</form>
<p class="limitnotice">Limit 5 per Sale</p>
</td>
<td>
<div class="fieldlabel">Sales Code</div>
<form>
<select id="saleBox">
<option id="normalsale">Normal</option>
<option id="the25off">25% Off Sale</option>
<option id="the40off">40% Off Sale</option>
<option id="the15off">15% Senior Discount</option>
</select>
</form>
<form style="text-align:center;">
<input class="fieldlabel" id="findSalesTotal" type="button" value="Find Sales Total"
onclick="findSalesTotal(); return true;" />
</form>
</td>
<td>
<div class="fieldlabel">Total Amount Due</div>
<p id="finalSalesTotal"></p>
</td>
</tr></table>
这是 JavaScript:
<script language="javascript" type="text/javascript">
function findSalesTotal() {
var itemValue;
var NOI;
var itemTotal;
var SalesCode;
var DueSansTax;
var SalesTax = 1.06;
var TAD;
if (document.getElementById('heartsinlavaflow').selected = true)
{itemValue = 190;}
else if (document.getElementById('scarofafrica').selected = true)
{itemValue = 220;}
else if (document.getElementById('monkeysuncle').selected = true)
{itemValue = 321.15;}
else if (document.getElementById('flatteringfool').selected = true)
{itemValue = 118.65;}
else if (document.getElementById('stealdeal').selected = true)
{itemValue = 5.75;}
else if (document.getElementById('arweethearyet').selected = true)
{itemValue = 88.73;}
else if (document.getElementById('checkbouncer').selected = true)
{itemValue = 532.9;}
else if (document.getElementById('worthyoursoul').selected = true)
{itemValue = 6685.19;}
else if (document.getElementById('therough').selected = true)
{itemValue = 12.18;}
else if (document.getElementById('canyudrspecial').selected = true)
{itemValue = 86.14;}
else if (document.getElementById('viderzhen').selected = true)
{itemValue = 121.15;}
else if (document.getElementById('fiberglasschicken').selected = true)
{itemValue = 132.17;}
else if (document.getElementById('pinkpuma').selected = true)
{itemValue = 93;}
else
{itemValue = 0;
alert("Select a valid model, Model Select Error");}
if (document.getElementById('NOI-1').checked = true)
{NOI = 1;}
else if (document.getElementById('NOI-2').checked = true)
{NOI = 2;}
else if (document.getElementById('NOI-3').checked = true)
{NOI = 3;}
else if (document.getElementById('NOI-4').checked = true)
{NOI = 4;}
else if (document.getElementById('NOI-5').checked = true)
{NOI = 5;}
else
{NOI = 0; alert("Select a number of items. Number of Items Error");}
if (document.getElementById('normalsale').selected = true)
{SalesCode = 1;}
else if (document.getElementById('the25off').selected = true)
{SalesCode = 0.75;}
else if (document.getElementById('the40off').selected = true)
{SalesCode = 0.6;}
else if (document.getElementById('the15off').selected = true)
{SalesCode = 0.85;}
else
{SalesCode = 0; alert("Invalid Entry, Sales Code Error");}
itemTotal = itemValue * NOI;
DueSansTax = itemTotal * SalesCode;
TAD = DueSansTax * SalesTax
document.getElementById('finalSalesTotal').innerHTML = TAD;}
</script>
我不是 JavaScript 专家,但脚本对我来说看起来格式正确。所以我不太明白为什么它根本不会执行。当一切正常时,Total Amount Due 字段将显示一个数值,一旦我知道我得到读数,我就可以将其解析为钱。但到目前为止,我没有得到任何结果。有没有人有任何建议来扭转这件事?
最初,这是十年前的类作业的一部分。我当时用 VB.NET 编译它,一切正常。我已经删除了产生有趣结果的类似游戏的“作弊”代码,因为我想在使它变得可爱之前让基本脚本正常工作。
不,我不记得我是如何在 VB.NET 中做到这一点的。自 2007 年以来,我一直没有进行过那种级别的程序编译。
更新:感谢您的“窗口”。建议。但是现在有一个新问题:它不记得选择。例如:当我将其设置为“非洲之痕”时,它会恢复为“熔岩流中的心”。当我将单选按钮设置为两个时,它们会重置为 1。当我选择促销时,我会被重定向到正常模式。如何在输出前保留数据选择?
PS:我已经删除了 CSS,正如一些人所说的那样,它妨碍了并且无论如何都不是问题的一部分。
最佳答案
您的问题是您的按钮的 id 是 findSalesTotal
而您的函数的名称 是 findSalesTotal
。
这是一个不起作用的 jsfiddle:http://jsfiddle.net/gzej4jm5/1/ 这个确实有效:http://jsfiddle.net/gzej4jm5/2/
浏览器或 javascript 引擎认为您正试图在 onclick
事件中引用 DOM 元素(您的按钮)。
要么更改按钮的 ID,要么更改函数的名称并更新按钮的 onclick 事件。我在工作 fiddle 中做了后者,将函数名称更改为 findSalesTotalFunction
。
相关的 HTML:
<input class="fieldlabel" id="findSalesTotal" type="button"
value="Find Sales Total" onclick="findSalesTotalFunction(); return true;" />
相关的javascript:
function findSalesTotalFunction()
关于javascript - 为什么这个从 VB.NET 移植的 JavaScript 没有执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26372479/