我试图在两个按钮的事件上填充TextBox。
<div class="numbers-row">
<div onclick="var result = document.getElementById('qty'); var qty = result.value; if( !isNaN( qty ) && qty > 0 ) result.value--;return false;" class="dec qtybutton"><i class="fa fa-minus"> </i></div>
<asp:TextBox ID="qty" runat="server" class="qty" title="qty" maxlength="12" name="qty"></asp:TextBox>
<div onclick="var result = document.getElementById('qty'); var qty = result.value; if( !isNaN( qty )) result.value++;return false;" class="inc qtybutton"><i class="fa fa-plus"> </i></div>
</div>
图片包含两个按钮。在Onclick事件减号按钮递减值和加号按钮递增值,但该值不反映在TextBox上。但是,如果我使用像<input type="text" class="qty" title="Qty" value="1" maxlength="12" id="qty" name="qty"/>
这样的html文本框,它可以正常工作
答案 0 :(得分:1)
如果我没记错的话,ASP.NET会添加额外的标识符以确保ID是唯一的。当它在客户端呈现时,ID
看起来更像ctl00$ContentPlaceHolder1$CustomUserControl1$qty
。您可以在ASP.NET Web Server Control Identification
文档中了解有关此命名约定的更多信息。
要解决您的问题,您可以:
id
以qty
结尾,请使用CSS属性选择器,例如document.querySelector('[id$="$qty"]')
答案 1 :(得分:1)
Asp.Net选中服务器控件的ID,以确保网页上元素的唯一ID。如果要使用相同的ID,请在asp:TextBox中使用ClientIDMode =“Static”。或者您可以使用
在javascript中获取输入引用document.getElementById('<%=qty.ClientID%>')