2014-03-27 78 views
0

這是我第一次使用Javascript。 我有這樣的腳本:將html輸入文本的值傳遞給Javascript函數並獲得結果

<script type="text/javascript"> 
function baunilha() 
{ 
    var qb=document.getElementById("quantbaunilha").innerHTML; 
    var prbau=5.58; 
    var totbau=qtd*prbau; 

} 
    document.getElementById("valorlinhab").innerHTML=baunilha(); 

</script> 

而且,這是該函數的調用:

<tr> 
<td><img src="/imagens/DOB_Baunilha.PNG" style="vertical-align: middle" alt="Ima_Bau">   </td> 
<td>Caixa de 42 Unidoses de Detergente Ultra-Concentrado aroma Baunilha</td> 
<td><input id="quantbaunilha" name="quantbaunilha" value="0" maxlength="2" type="text" size="2" onchange="baunilha()"></td> 
<td><input id="valorunib" name="valorunib" size="6" value="5.58">€</td> 
<td><input id="valorlinhab" name="valorlinhab" size="8" value="0.00">€</td> 
</tr> 

所以,我想,該函數的結果在文本框的id =「valorlinhab」 apears 。 我嘗試了w3schools的例子,但它們並沒有工作,就像其他網絡中的例子一樣。 有人可以幫助我嗎?任何幫助都是很好的。 謝謝,提前。

+0

當心! www.w3fools.com;) – Kvothe

+0

爲了澄清Kvothe的評論,w3schools通常被認爲是專業人士的一個很差的參考,最好避免不惜一切代價。他們有很多事實上不正確和/或過時的信息。 – samanime

+0

謝謝你的解釋。我真的看到了這樣的情況,例如,使用dtabase,等等 – FerPessoa

回答

0

您需要使用值來代替的innerHTML的。此外,您在計算中使用「qtb」而不是「qb」。您還應該在baunilha函數中設置值。最後,你必須綁定一個事件監聽器到輸入,以便它將調用javascript函數。

我還添加了一行來檢查輸入是否實際是一個數字。

function baunilha() 
{ 
    var qb=document.getElementById("quantbaunilha").value; 

    //check that quantbaunilha is a number 
    if(isNaN(parseFloat(qb))) 
    { 
     alert('Enter a number'); 
     return; 
    } 

    var prbau=5.58; 

    document.getElementById("valorlinhab").value=qb*prbau; 
} 

document.getElementById("quantbaunilha").addEventListener('change', baunilha); 

這裏是一個小提琴:http://jsfiddle.net/uLfcG/3/

+0

那麼,它在你的代碼中起作用。但是,如果您願意,請查看我在此處更正的代碼:http://www.limpec.com.pt/duvida_javascript.txt並在此處嘗試:http://www.limpec.com.pt/comprar_dob.php 。這不是和我一起工作。 – FerPessoa

+0

替換行「var totbau = qb * prbau;」在帶有「document.getElementById(」valorlinhab「)的baunhila函數中。value = qb * prbau;」 此外,您需要在輸入按鈕中的單詞baunhila onchange後面的「()」來調用該函數。 – Jem

+0

謝謝您Jem.I嘗試了您的代碼,但仍然無法在我的網頁中工作。我不明白爲什麼。我真的很失落。 – FerPessoa

0

您可以使用innerHTML將結果放入具有開始和結束標記(如<p>)的標記的元素內部HTML中。

此外,由於您正在將它用於您的onchange事件,因此您應該將值設置移入該函數中。

對於<input>,你設置的值屬性來代替:

<script type="text/javascript"> 
function baunilha() { 
    var qb=document.getElementById("quantbaunilha").value; 
    var prbau=5.58; 
    var totbau=qb*prbau; 

    document.getElementById("valorlinhab").value=totbau; 
}  
</script> 

這應該做的伎倆。

這裏是工作示例的jsfiddle:http://jsfiddle.net/U7ZZh/

而且,你對那是var totbau=qtb*prbau行小錯字應var totbau=qb*prbau

+0

嗯,它可以在你的頁面中運行。 – FerPessoa

+0

哦,你在totbau線上也有一個小錯字。我在回答中記下了它。 – samanime

相關問題