假設我有一個DevExpress ASPxTextBox,其ID是「instrument」。我想訪問客戶端文本框的值。所以我需要寫一個JavaScript。如何從JavaScript訪問ASPxTextBox的值
如果這是一個正常的asp文本框,我可以通過編寫代碼就像var instrumentElement = document.getElementById('<%=instrument.ClientID%>')
但同樣的辦法是行不通了的DevExpress的文本框訪問該文本框。
如何訪問ASPxTextBox?我正在使用Developer Express版本7.2。
下面是一些更深入的代碼片斷 -
<div style="display: inline; float: left;">
<dxe:ASPxTextBox ID="InstrumentQuantity" runat="server" Width="170px">
</dxe:ASPxTextBox>
</div>
<div style="display: inline; float: left;" onclick="incOrDecQty(0);">
<asp:ImageButton ID="decrementQuantity" runat="server"
Height="16px" Width="16px" ImageUrl="~/images/left.png"
AlternateText="Decrease Quantity" PostBackUrl="javascript:void(0);"/>
</div>
<div onclick="incOrDecQty(1);">
<asp:ImageButton ID="incrementQuantity" runat="server"
AlternateText="Increase Quantity" ImageUrl="~/images/right.png"
Height="16px" Width="16px" PostBackUrl="javascript:void(0);" />
</div>
這是ASP代碼。相應的Javascript如下:
function incOrDecQty()
{
var element = document.getElementById('<%=InstrumentQuantity.ClientID%>');
var lotSize = parseInt(document.getElementById('<%=LotSize.ClientID%>')
.innerHTML, 10);
var currentValue = parseInt(element.value,10);
if(arguments[0] == 1)
currentValue += lotSize;
else if((currentValue - lotSize) >= 0)
currentValue -= lotSize;
element.value= currentValue;
}
剛剛意識到GetValue()客戶端功能可能不在您的版本中。如果不是,您可以嘗試MyTextBox.GetText()。 – AGoodDisplayName 2010-02-05 22:54:37
我討厭'ClientInstanceName'的東西。它只對原始的非嵌套控件可靠地工作..我建議使用ClientID查找。 (所有的DX控件都通過它們的ClientId:'window [theClientId] .SetText(..)'「將它們自己添加到'window'' – 2012-08-28 22:53:39