这些是我页面上的不同标签,单击其中一个标签会显示在页面的该部分。
<nav>
<ul>
<li class="tab-current"><a style="color:red" href="#section-1" class="icon-shop"><span>Home</span></a></li>
<li><a href="#section-2" class="icon-cup" id="events"><span>Events</span></a></li>
<li><a href="#section-3" class="icon-food" id="finance"><span>Finance</span></a></li>
<li><a href="#section-4" class="icon-lab" id="merchandise"><span>Merchandise</span></a></li>
<li><a href="#section-5" class="icon-truck" id="tasks"><span>Tasks</span></a></li>
<li><a href="#section-6" class="icon-truck" id="profile"><span>Profile</span></a></li>
</ul>
</nav>
<section id="section-2" onclick="setTabIndex(2)">
<!-- content here -->
</section>
<asp:TextBox ID="tabu" runat="server"></asp:TextBox>
function setTabIndex(tab) {
//store the tab number in a hidden field so you can access it in code behind
document.getElementById("<% = HiddenField1.ClientID %>").value = tab;
document.getElementById('tabu').value = tab;
}
文本框,用于检查更改选项卡时是否将值设置为文本框。因此,每次点击标签时,document.getElementById('tabu').value = tab;
都应更改文本框值,对吧?但它没有显示在文本框中。
我做错了什么?请帮忙。感谢
答案 0 :(得分:2)
当您使用runat="server"
Web窗体控件时,ASP.Net将(恼人地)在运行时更改客户端id
。这就是为什么JS代码的前一行使用服务器控件的ClientID
属性 - 这与您需要的技术相同。试试这个:
function setTabIndex(tab) {
document.getElementById("<%= HiddenField1.ClientID %>").value = tab;
document.getElementById("<%= tabu.ClientID %>").value = tab;
}
答案 1 :(得分:0)
我认为服务器控件中的客户端ID也不同。
您可以在浏览器中使用开发者工具查看文本框的确切ID。
尝试使用,
Javascript中的 document.getElementById('tabu').value = tab;
和
<asp:TextBox ID="tabu" runat="server" ClientIDMode="Static"></asp:TextBox>
对于您的隐藏字段也是如此,因为它是服务器端控件。