您好我通过客户端的javascript代码将文本框留空了。
如果我在没有母版页的情况下使用此代码,它可以很好地工作,但我使用的母版页并不起作用。为什么呢?
<script type="text/javascript">
function clrCtrl() {
var control = "<%=txtpassword.ClientID %>";
var control2 = "<%=txtConfirmpassword.ClientID %>";
document.getElementById(control).value = "";
document.getElementById(control2).value = "";
}
</script>
下面是我的radiobutton和下拉列表
<asp:RadioButtonList ID="RadioButtonList1" runat="server" CssClass="nbdcontent" AutoPostBack="True"
RepeatDirection="Horizontal" Font-Bold="True" Font-Size="Medium" onchange="clrCtrl()" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
<asp:ListItem Value="0">CPMU</asp:ListItem>
<asp:ListItem Value="1">SPMU</asp:ListItem>
<asp:ListItem Value="2">SFTI</asp:ListItem>
</asp:RadioButtonList>
<asp:DropDownList ID="ddlStates" runat="server" AutoPostBack="True"
CssClass="mytextbox" DataTextField="State" DataValueField="State_Id" Enabled="False"
OnSelectedIndexChanged="ddlStates_SelectedIndexChanged1"
onchange="clrCtrl()">
<asp:ListItem Value="0">-Select-</asp:ListItem>
</asp:DropDownList>
答案 0 :(得分:0)
我创建了这个js函数来查找页面中的所有元素。如果element(control)id没有前缀ct100_ContentPlaceholder1_
(或类似内容),如果不是master
或conten
页面的内容,则函数getElement
将立即返回控制/ element,将避免循环完成页面,否则将搜索。
function getElement(id) {
if (document.getElementById(id) == null) {
var pp = document.getElementsByTagName('*');
for (var i = 0; i < pp.length; i++) {
if (pp[i].id != null) {
var ele = pp[i].id;
if (ele.indexOf('_') > -1) {
//spliter is _
var tt = ele.split('_');
if (tt[tt.length - 1] == id) { return pp[i]; }
}
if (ele.indexOf('$') > -1) {
//spliter is $
var tt = ele.split('$');
if (tt[tt.length - 1] == id) { return pp[i]; }
}
}
}
// element not found, return nothing
return null;
} else {
// element is not in contentplaceholder
return document.getElementById(id);
}
}
它将遍历页面中的所有元素。 然后您可以在您的代码中使用:
function clrCtrl() {
getElement('txtpassword').value='';
getElement('txtConfirmpassword').value='';
}
但是,这是非常重要的一件事:不要在您的控件ID中使用_ char 。这是一个条件,否则function
将返回null
。
例如。如果您的textbox
id
为txt_password
,function
将返回null
,则无法找到您的控件。
P.S。抱歉英语不好。