2015-04-17 83 views
1

我的htmljavascript代碼工作正常。但是,雖然我把它放在asp.netjavascript代碼不起作用。ASP.NET javascript代碼不工作,而把元素的runat =「服務器」

html代碼...

<div class="form-group"> 
     <label class="col-md-3 col-xs-12 control-label">Work Completed</label> 
     <div class="col-md-6 col-xs-12"> 
      <div class="input-group"> 
       <span class="input-group-addon">%</span> 
       <input type="text" class="form-control" name="" id="tval" oninput="changeDiv()" runat="server"/> 
      </div> 
     </div> 

    </div> 
    <div class="form-group"> 
     <label class="col-md-3 col-xs-12 control-label"></label> 
     <div class="col-md-6 col-xs-12">                                   
      <div class="progress progress-thick progress-striped active"> 
       <div id="p_bar" class="progress-bar progress-bar-success" role="progressbar" ></div> 
      </div> 
     </div> 
    </div> 

javascript代碼

<script type="text/javascript"> 
    function changeDiv() { 
     tval = document.getElementById('tval').value; 
     document.getElementById('p_bar').setAttribute("style", "width:" + tval + "%"); 
    } 
</script> 

這完美的作品。上面的代碼是用文本框(id="tval")輸入更改progressbar(id="p_bar")值,而progressbar範圍隨着值的增加或減少而變化。

但是,當我把runat="server"<input type="text">,代碼不起作用。

我無法找到解決方案。

請幫幫我。

+0

也加這個'ClientIDMode =「Static」' –

回答

5

通過在您的服務器控件中使用ClientIDMode="Static",它不會更改頁面渲染&上的該元素的ID,因此您現有的javascript/jquery將可以工作。與

<input type="text" class="form-control" name="" id="tval" oninput="changeDiv()" runat="server" ClientIDMode="Static"/> 

<input type="text" class="form-control" name="" id="tval" oninput="changeDiv()" runat="server"/> 

,如果你不希望使用ClientIDMode="Static"

請更換您的ID,無論你使用runat="server" - :

所以這個替換,像這樣: -

tval = document.getElementById('<%=tval.ClientID%>').value;

+0

謝謝。有用。 – Raj

+0

歡迎你@Raj Happy Coding .... –

2

當您創建文本框作爲服務器控件時,您必須添加ClientID。

所以試試這個,

<script type="text/javascript"> 
    function changeDiv() { 
     tval = document.getElementById('<%=tval.ClientID%>').value; 
     document.getElementById('p_bar').setAttribute("style", "width:" + tval + "%"); 
    } 
</script> 
0

由於輸入的標籤是一個HTML標記(標記語言),你不能用一個asp.net RUNAT屬性,而是可以使用

舉例:如果<asp:Label runat="server">它是合適的。

+0

是的,你可以。 ASP.NET將其轉換爲HTML控件。網頁控件是另一回事。 –

相關問題