簡體   English   中英

如何在 html 中使用 javascript 函數?

[英]How do I use javascript functions in html?

我一直在嘗試在另一個 html 文件中的 javascript 文件中使用一個函數。 從本質上講,它不起作用,我認為這與我試圖使 html 文件上的 javascript 可訪問有關。 該函數應該將從表單中獲取的值相加,然后輸出該總和。 代碼的第一位是我的 .js 文件,第二位是我的 html。

 function reset() { var q = new Array(5); for(var i = 0; i < 5; i++) { q[i] = 100; } } function calculate(form) { var q = new Array(5); for(var i = 0; i < 5; i++) { q[i] = 100; } q[1] = document.worksheet1.Q1.options[document.worksheet1.Q1.selectedIndex].value; q[2] = document.worksheet1.Q2.options[document.worksheet1.Q2.selectedIndex].value; q[3] = document.worksheet1.Q3.options[document.worksheet1.Q3.selectedIndex].value; q[4] = document.worksheet1.Q4.options[document.worksheet1.Q4.selectedIndex].value; q[5] = document.worksheet1.Q5.options[document.worksheet1.Q5.selectedIndex].value; var total = (q[1]*1.0)+(q[2]*1.0)+(q[3]*1.0)+(q[4]*1.0)+(q[5]*1.0); document.worksheet1.totals.value = total; }
 <html> <header> <script language="Javascript" src="tmdcalculation.js" type="text/javascript"></script> </header> <body> <form name="worksheet1" id="worksheet1" onsubmit="calculate"> <table border="1" align="center"> <tr> <td><table> <tr> <td>Feeling</td> <td>How I have felt</td> </tr> <tr> <td>Question 1?</td> <td><select name="Q1" size="1"> <option value="0" selected="selected">Not at all</option> <option value="1">A Little</option> <option value="2">Moderately</option> <option value="3">Quite a Bit</option> <option value="4">Extremely</option> </select></td> </tr> <tr> <td>Question 2?</td> <td><select name="Q2" size="1"> <option value="0" selected="selected">Not at all</option> <option value="1">A Little</option> <option value="2">Moderately</option> <option value="3">Quite a Bit</option> <option value="4">Extremely</option> </select></td> </tr> <tr> <td>Question 3?</td> <td><select name="Q3" size="1"> <option value="0" selected="selected">Not at all</option> <option value="1">A Little</option> <option value="2">Moderately</option> <option value="3">Quite a Bit</option> <option value="4">Extremely</option> </select></td> </tr> <tr> <td>Question 4?</td> <td><select name="Q4" size="1"> <option value="0" selected="selected">Not at all</option> <option value="1">A Little</option> <option value="2">Moderately</option> <option value="3">Quite a Bit</option> <option value="4">Extremely</option> </select></td> </tr> <tr> <td>Question 5?</td> <td><select name="Q5" size="1"> <option value="0" selected="selected">Not at all</option> <option value="1">A Little</option> <option value="2">Moderately</option> <option value="3">Quite a Bit</option> <option value="4">Extremely</option> </select></td> </tr> </table></td> </tr> </table> <table border="1" align="center"> <tr> <td><table> <tr> <td align="right"><input name="button" type="button" onclick="calculate(this.form)" value="Analyse" /></td> <td>Total Mood Calc: <input name="totals" type="text" size="3" /></td> <td><input name="reset" type="reset" onclick="initial()" value="Reset" /></td> </tr> </table></td> </tr> </table> </form> </body> </html>

Ps 一些額外的問題。 我從網站上借用了一些代碼,因為我對 javascript 和 html 仍然很陌生。 為什么reset函數的數組值都變成了100? 而且,為什么calculate 函數不直接調用reset 函數而不是做同樣的事情呢?

我只是 jscript 的新手,這可能行不通,但可以試一試

function reset()
{
    var q = new Array(5);

    for(var i = 0; i < 5; i++)
    {
        q[i] = 100;
    }
}

function calculate() {

    var q = new Array(5);
    for(var i = 0; i < 5; i++) {
        q[i] = 100;
    }
    q[1] = document.worksheet1.Q1.options[document.worksheet1.Q1.selectedIndex].value;
    q[2] = document.worksheet1.Q2.options[document.worksheet1.Q2.selectedIndex].value;
    q[3] = document.worksheet1.Q3.options[document.worksheet1.Q3.selectedIndex].value;
    q[4] = document.worksheet1.Q4.options[document.worksheet1.Q4.selectedIndex].value;
    q[5] = document.worksheet1.Q5.options[document.worksheet1.Q5.selectedIndex].value;

    var total = (q[1]*1.0)+(q[2]*1.0)+(q[3]*1.0)+(q[4]*1.0)+(q[5]*1.0);

    document.worksheet1.totals.value = total;
}

<form name="worksheet1" id="worksheet1" onsubmit="return calculate()"> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM