2013-07-10 21 views
2

文本框我有一個asp:文本框如何更改一個asp的價值:從JavaScript

<asp:textbox ID="NewName" runat="server" /> 

,當用戶點擊「取消」按鈕,我想刪除無論是在該文本框通過使價值只是「」。如果是文本類型的輸入字段,我可以做到這一點在JavaScript:

document.getElementById('NewName').value= ""; 

但我不能只是這樣做,因爲這是一個asp:文本框。

回答

10

當你的asp:文本框呈現給用戶界面時,是的,它只是一個輸入字段的文本類型。這可能是一個問題的唯一部分是ID,但可使用的ClientIDMode設置:

<asp:textbox ID="NewName" runat="server" ClientIDMode="Static" /> 

呈現到:

<input type="text" id="NewName" /> 

,因此你應該使用工作完全JavaScript的。

+0

你可以,當然,也使用jQuery和CSS類。但由於這個問題沒有提到jQuery,我的答案也沒有。 –

+0

根據其他一些情況(例如中繼器中的控件,定位多個控件),最好使用CssClass而不是ClientIDMode =「Static」,但最佳答案的確使用Static ClientIDMode。 –

4

<asp:TextBox>呈現給<input type="text">,你可以象使用,唯一的併發症是id=""屬性被改寫,但你可以這樣做:

document.getElementById("<%= NewName.ClientID %>").value = ""; 

假設這個腳本是在頁面相同文本框。如果這是在參考<script src="">那麼你需要使用元素的ID的全局腳本變量。

3

嘗試文本框的的ClientIDMode設置爲靜態

這樣的JavaScript應該能夠用相同的ID在ASPX找到他們。

這裏整個測試頁

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
    <script type="text/javascript"> 
    function ClearTB1() { 
     document.getElementById("TextBox1").value=""; 
    } 
</script> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 

    <p> 
     <asp:TextBox ID="TextBox1" runat="server" Text="test" ClientIDMode="Static"></asp:TextBox><br /> 
     <asp:TextBox ID="TextBox2" runat="server" Text="test" ClientIDMode="Static"></asp:TextBox><br> 
     <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="ClearTB1()" 
      CausesValidation="False" UseSubmitBehavior="False" /><br /> 
    </p> 
</asp:Content> 
1

我有同樣的問題。一旦我記得在Ids上使用asp.net進行了一次強化,我解決了它。

我的aspx內

,我有:

<input type="text" id="sessSubs"/> 

進一步向下,一個gridview內(因此使用的「類」,而不是「ID」),我有一個柱,其具有一個asp:文本框:

<asp:TextBox runat="server" class="paid" /> 

一次,我回顧了ID重整的問題,它只是改變我所引用的文本框的方式的情況下:

<script type="text/javascript"> 
$(document).ready(function() { 
    function updateSubs() 
    { 
    var sub = parseFloat($('[id$=sessSubs]').val()); 
    $('.paid').val(sub); 
    } 
$(document).on('change, keyup', '[id$=sessSubs]', updateSubs); 
}); 
</script> 
相關問題