今天我接到了一个标题为的面试问题。
例如,更新面板包含一个Panel,Panel包含一个TextBox。
如何获取TextBox ClientID?
我唯一能想到的是:
我们可以预测TextBox ClientID依赖于ClientID模式并使用getElementByID。
即。 getElementByID('ct100$MasterPageBody$ct100$UpdatePanelID$ct100$PanelID$ct100$TextBoxID')
我们可以使用JavaScript来解析HTML,将输入控件解析为数组。
即假设我们知道我们想找到第一个UpdatePanel的第一个Panel的第一个TextBox。 我们可以从myUpdatePanel [0]找到它,然后让它的孩子使用JavaScript? (我只在这里猜测)
getElementByID('<%=MyTextBox.ClientID%>')
但假设TextBox是动态添加的,但是这样做的正确方法是什么?
答案 0 :(得分:2)
您可以根据id的结尾从jQuery选择器访问控件,如下例所示:
<asp:CheckBox ID="chkEnable" Text="My Checkbox" runat="server" />
<script type="text/javascript">
$(function() {
var checked = $("input[id$=chkEnable]").attr("checked");
});
</script>
答案 1 :(得分:0)
试试这个JQUERY
$("input[type='text']:first")
设置第一个文本框焦点的示例
$(document).ready(function() {
// focus on the first text input field in the first field on the page
$("input[type='text']:first", document.forms[0]).focus();
});
答案 2 :(得分:0)
你可以试试这个
var $textboxes = $("input[type='text']")
现在,$textboxes
是一个jquery对象数组,表示页面上的所有文本框,因此您可以执行类似
$.each($textboxes, function(index, obj) {
// do something to check if this is the textbox that you are looking for...
});