我有4个asp:表单上的文本框字段。为简单起见,ID是A1,A2和B1,B2。 如果任何一个As或Bs被填充,我需要隐藏另一个。所以我在A1中输入一些内容,隐藏A2,在B2中输入内容,隐藏B1。在asp.net中我怎样才能动态地隐藏一个字段基于他人的价值?
我以为我可以使用JavaScript的OnBlur事件来做到这一点,但它不会做任何不幸的事情。我试图让字段出现/消失而不必做回发。
任何建议或例子会很好。
感谢, Q
我有4个asp:表单上的文本框字段。为简单起见,ID是A1,A2和B1,B2。 如果任何一个As或Bs被填充,我需要隐藏另一个。所以我在A1中输入一些内容,隐藏A2,在B2中输入内容,隐藏B1。在asp.net中我怎样才能动态地隐藏一个字段基于他人的价值?
我以为我可以使用JavaScript的OnBlur事件来做到这一点,但它不会做任何不幸的事情。我试图让字段出现/消失而不必做回发。
任何建议或例子会很好。
感谢, Q
事件触发onKeyDown
添加到您的四个文本框(你可以阅读有关的按键事件处理程序的位置:http://help.dottoro.com/ljlkwans.php),并使用处理程序来隐藏不需要的文本框中。或者,如果你只是想禁用,而不是隐藏它这会为你工作:
<asp:TextBox ID="A1" onKeyDown="disableText('A2')" runat="server"></asp:TextBox>
然后对JavaScript的:
function disableText(textbox)
{
document.getElementById(textbox).disabled=true;
}
他为什么需要AJAX?他所要做的就是在客户端。这是纯粹的JavaScript。 – 2010-10-03 19:23:47
@Oren A:好点,你不需要AJAX,不知道我在想什么...... – 2010-10-03 19:25:58
看着那个代码,逻辑思考它,那会禁用它,但让我们说他们想要删除所有文本,然后使用A2而不是A1,您需要添加一个检查功能,看看文本框是否为空,然后取消隐藏所有“A”文本框。 – 2010-10-03 19:37:04
与jQuery
$(function(){
$('#A1').blur(function(){
if ($('#A1').value() == "")
{
$('#A2').fadeIn();
}
else
{
$('#A2').fadeOut();
}
});
});
但如果你”重新使用主页面的ID将是不同的!
lol @ jQuery,似乎没有人想要写香草JS了:) – Marko 2010-10-03 19:56:13
没有人使用jquery或类似的框架会想要使用香草js,它相比之下很糟糕。 – 2010-10-03 21:59:17
一块蛋糕,并且没有jQuery的:P
<script>
function txtChange(x1, x2){
x1=document.getElementById(x1);
x2=document.getElementById(x2);
x2.style['display'] = (x1.value.length>0) ? 'none' : '';
}
</script>
和
protected void Page_Load(object sender, EventArgs e)
{
a1.Attributes["onchange"] = string.Format("txtChange('{0}','{1}')", a1.ClientID, a2.ClientID);
a2.Attributes["onchange"] = string.Format("txtChange('{0}','{1}')", a2.ClientID, a1.ClientID);
b1.Attributes["onchange"] = string.Format("txtChange('{0}','{1}')", b1.ClientID, b2.ClientID);
b2.Attributes["onchange"] = string.Format("txtChange('{0}','{1}')", b2.ClientID, b1.ClientID);
}
展示问题的任何代码示例将是巨大的。 – Oded 2010-10-03 19:00:28
是啊,对不起,今天不在工作,所以我没有机会获得我的编码...可能应该写明天。 – Quayludious 2010-10-03 19:17:00