我检查了许多博客关于我的问题的答案,我也从这个网站找到了一些解决方案,我尝试了所有这些。但我不知道为什么会这样?这些解决方案无法解决我的问题,我总是会遇到错误。 最后,我找到了一个我认识到这是正确的解决方案,因为在很多地方这个解决方案都被接受了。但这不能再解决我的问题了。
$("#<%=plusBttn.ClientID%>")
我在尝试此解决方案时遇到此错误:当前上下文中不存在plusBttn。
我将可预测模式用于我的按钮和文本框的客户端模式。简单地说,我想改变数量,在文本框(QuantityTxtbx)中显示,使用控制我的按钮(减去减去amountTxtbx值的值减去,而使用plusBttn同样用于增加值)
实际上我的问题在于通过在jscript中使用ClientID来查找我的控件。
上面显示的代码都在Repeater,ItemTemplate:
中我在asp.net页面中的jscript代码:
$(document).ready(function () {
$("#<%=plusBttn.ClientID%>").click(function () {
var value = parseInt($("input[id$='QuantityTxtbx']").val());
value = value + 1;
$("input[id$='QuantityTxtbx']").val(value);
});
$("input[id$='#minusBttn_']").click(function () {
var value = parseInt($("input[id$='QuantityTxtbx']").val());
if (value > 1)
value = value - 1;
$("input[id$='QuantityTxtbx']").val(value);
});
});
我的控件;
<asp:Button ID="minusBttn" runat="server" Text="-" ClientIDMode="Predictable"/>
<asp:TextBox ID="QuantityTxtbx" runat="server" Text='<%#Eval("Quantity") %>' Enabled="False" EnableTheming="False" EnableViewState="False" Height="16px" Width="16px" Wrap="False"ClientIDMode="Predictable">1</asp:TextBox>
<asp:Button ID="plusBttn" runat="server" Text="+" ClientIDMode="Predictable" />
很抱歉误解,这是我的浏览器端代码:
<script type="text/jscript">
$(document).ready(function () {
var plusBttn = $("input[id$='minusBttn']");
$("input[id$='#minusBttn_']").click(function () {
var value = parseInt($("input[id$='QuantityTxtbx']").val());
value = value + 1;
$("input[id$='QuantityTxtbx']").val(value);
});
$("input[id$='#minusBttn_']").click(function () {
var value = parseInt($("input[id$='QuantityTxtbx']").val());
if (value > 1)
value = value - 1;
$("input[id$='QuantityTxtbx']").val(value);
});
});
</script>
<input type="submit" name="ctl00$ContentPlaceHolder1$Repeater1$ctl01$minusBttn" value="-" id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_minusBttn_0" />
<input name="ctl00$ContentPlaceHolder1$Repeater1$ctl01$QuantityTxtbx" type="text" value="2" id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_QuantityTxtbx_0" disabled="disabled" style="height:16px;width:16px;" />
<input type="submit" name="ctl00$ContentPlaceHolder1$Repeater1$ctl01$plusBttn" value="+" id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_plusBttn_0" />
答案 0 :(得分:0)
尝试使用以下代码:
$("#<%#Container.FindControl("plusBttn").ClientID%>")
我们已经知道主页chagnes ID基于内容ContentPlaceHolder
,并且它与转发器一起迭代新ID,用于数据库连接的任何内容。 jquery .FindControl
适用于你的数据绑定plusBttn ClientID。
然后将您的jquery脚本更新为:
$(document).ready(function () {
var plusBttn = $("#<%#Container.FindControl("plusBttn").ClientID%>");
$("#<%#Container.FindControl("minusBttn").ClientID%>").click(function () {
$("#<%#Container.FindControl("QuantityTxtbx").ClientID%>").val();
});
$("#<%#Container.FindControl("minusBttn").ClientID%>").click(function () {
$("#<%#Container.FindControl("QuantityTxtbx").ClientID%>").val();
});
});