2015-04-01 93 views
0

作爲一個HTML頁面運行代碼我沒有問題。現在,在一個Web表單中,轉換器根本不做任何事情。正嘗試將其從HTML遷移到Web表單頁面以使用母版頁和主題。爲什麼我的JavaScript不能在ASP.net web表單中工作?

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
<script lang="javascript" type="text/javascript"> 
    //Convert Logic 
    function CelsiusConvert() { 
     document.converter.fahrenheit.value = (document.converter.celsius.value * 9/5) + 32 
     document.converter.kelvin.value = document.converter.celsius.value * 1 + 273.15 
    } 
    function FahrenheitConvert() { 
     document.converter.celsius.value = (document.converter.fahrenheit.value - 32) * 5/9 
     document.converter.kelvin.value = ((document.converter.fahrenheit.value - 32) * 5/9) + 273.15 
    } 
    function KelvinConvert() { 
     document.converter.celsius.value = document.converter.kelvin.value - 273.15 
     document.converter.fahrenheit.value = ((document.converter.kelvin.value - 273.15) * 9/5) + 32 
    } 
</script> 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    <form name="converter"> 
     <!--Input Fields--> 
     Celsius: 
     <input type="text" name="celsius" onchange="CelsiusConvert()"/><br /> 
     Fahrenheit: 
     <input type="text" name="fahrenheit" onchange="FahrenheitConvert()"/><br /> 
     Kelvin: 
     <input type="text" name="kelvin" onchange="KelvinConvert()"/><br /> 
     <!--Convert Button--> 
     <input type="button" value="Convert!" /> 
    </form> 
    </asp:Content> 
+1

請閱讀「[我如何問一個好問題](http://stackoverflow.com/help/how-to-ask)」,然後改進你的問題。 – 2015-04-01 12:08:56

+1

嘗試移除「表格」標記並檢查 – BNN 2015-04-01 12:09:17

+2

您遇到的問題到底是什麼? – Kritner 2015-04-01 12:09:23

回答

1

Web表單保留<form>標籤,以便它可以管理的回傳,並採取信息回。

對於你不應該使用<form>標籤開始,你可以把他們在鬆動這一頁。

要得到他們,你應該給他們id的和使用document.getElementById訪問他們(或使用jQuery)。

順便說一句,我不認爲訪問表單的方法是跨瀏覽器兼容,但無論如何,這與WebForms無關,因爲無論如何您都要將其移除。

因此,像這樣:

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
<script lang="javascript" type="text/javascript"> 
    //Convert Logic 
    function CelsiusConvert() { 
     document.getElementById("fahrenheit").value = (document.getElementById("celsius").value * 9/5) + 32 
     document.getElementById("kelvin").value = document.getElementById("celsius").value * 1 + 273.15 
    } 
    function FahrenheitConvert() { 
     document.getElementById("celsius").value = (document.getElementById("fahrenheit").value - 32) * 5/9 
     document.getElementById("kelvin").value = ((document.getElementById("fahrenheit").value - 32) * 5/9) + 273.15 
    } 
    function KelvinConvert() { 
     document.getElementById("celsius").value = document.getElementById("kelvin").value - 273.15 
     document.getElementById("fahrenheit").value = ((document.getElementById("kelvin").value - 273.15) * 9/5) + 32 
    } 
</script> 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    <div> 
     <!--Input Fields--> 
     Celsius: 
     <input type="text" name="celsius" id="celsius" onchange="CelsiusConvert()"/><br /> 
     Fahrenheit: 
     <input type="text" name="fahrenheit" id="fahrenheit" onchange="FahrenheitConvert()"/><br /> 
     Kelvin: 
     <input type="text" name="kelvin" id="kelvin" onchange="KelvinConvert()"/><br /> 
     <!--Convert Button--> 
     <input type="button" value="Convert!" /> 
    </div> 
    </asp:Content> 

我並不是說這是偉大的JavaScript代碼,但如果你只想得到這個工作,這樣你就可以繼續學習它應該做的伎倆。

-1

刪除類型和lang屬性和只使用:

<script> 
// Code 
</script> 

替代,創建一個外部JS腳本,並與例如此實現它:

<script type="text/javascript" src="/js/custom.js"></script> 
+0

它也可以使用'type'和'lang' atttibute,OP代碼中的主要問題是表單標記,這就是爲什麼javascript代碼不工作 – BNN 2015-04-01 12:27:36

0

添加

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"> 

它會工作

相關問題