我是jquery的新手,对不起,如果之前有问过这个问题(可以找到我要找的东西)
我想实现以下对话:如果我创建一个名为'_lblError'的错误标签,如下所示:
<div>
<asp:label ID="_lblError" text="this is a error msg"/>
</div>
classA或classB将根据空字符串应用于它,或者不在标签的'text'参数中。
我还想将此代码放在将在整个应用程序中使用的外部js文件中。
感谢您的帮助!
答案 0 :(得分:1)
首先,您可能需要为标签指定一个可用于选择的css类:
<asp:Label Id="_lblError" Text="This is the error message"
CssClass="ThisIsWhatWeWillllWorkWith" />
这可能会输出类似
的内容<span id="ct100__lblError" class="ThisIsWhatWeWillWorkWith">
This is the error message.
</span>
现在可以使用类作为选择器在jQuery中选择标签,并根据.text()
属性是否为空来添加类A或B.
$(function() {
$('.ThisIsWhatWeWillWorkWith').each(function() {
if($(this).text() == '') { $(this).addClass('ClassA'); }
else { $(this).addClass('ClassB'); }
});
});
所有代码均按原样提供,不保证无需修改即可运行。但是你可以大致了解如何解决这个问题......
编辑:在回复您的评论时,这是一种在不向标签添加css类的情况下执行此操作的方法。不要在错误消息中使用<asp:Label>
标记,而是将文字包装在您在页面上硬编码的标记中:
<span class="ThisIsWhatWeWillWorkWith"><asp:Literal ID="__ltlError" Text="This is the error message.</asp:Literal></span>
另一种可能更优雅的方法是创建自己的自定义标签,然后使用它。
public class ErrorLabel : System.Web.UI.WebControls.Label
{
public ErrorLabel() {
this.CssClass = "ThisIsWhatWeWillWorkWith";
}
}
然后使用以下行将错误消息放在页面上:
<asp:ErrorLabel ID="__lblError" Text="This is the error message" />
同样,不确定上面的代码是否会按原样运行。但同样,你会知道该怎么做......
答案 1 :(得分:0)
如果想要提供说明,如果出现错误则具有不同的字体和/或背景,如果错误标签中没有文本则不显示任何内容,那么您可以将控件设置为文字而不是标签。文字控件不会创建没有文本(MSDN doc)
的控件