我正在.net网站上工作,我有点情况。
说我有......
<input type="text" class="name" id="name">
<p></p>
<input type="text" class="surname" id="surname">
<p>Error!</p>
使用javascript,我喜欢做的是检测第二段标记是否显示“错误!”并在它之前的输入标记中添加一个类。
我知道这似乎是一种奇怪的工作方式,但任何建议都将不胜感激!
大家好,我得到的adivce和答案在jsfiddle的新页面上工作得很好,但我似乎无法让他们在我的实际网站上工作。
我的P和输入标签就像这样构建....
<li class="yourdetli">
<label class="yourdet">Street Name</label>
<input type="text" id="ctl00_ContentPlaceHolder1_TB_SName" name="ctl00$ContentPlaceHolder1$TB_SName">
<span style="color: Red; display: none;" class="errorp" id="ctl00_ContentPlaceHolder1_RequiredFieldValidator6">
<p>You must complete this field</p></span>
</li>
我的JS是......
<script type="text/javascript">
$(document).ready(function() {
$('p:contains("You must complete this field")').prev('input').addClass('error');
});
</script>
只是出于某些原因它似乎没有添加我的课程,任何人都可以看到为什么?
答案 0 :(得分:2)
您可以使用
$('p:contains("Error")').prev('input').addClass('error');
答案 1 :(得分:1)
也许试试
$("p:eq(1):contains('Error!')").prev('input').addClass('error');
答案 2 :(得分:0)
您可以使用jQuery检查第二个<p>
标记的文本值。你需要一个找到它的选择器(在这个例子中,它是最后一个<p>
标签)。
if ($("p").last().text() == "Error!") {
$("input#surname").addClass("myClass");
// do other stuff here
}
答案 3 :(得分:0)
尝试 -
if ($("input#surname").next("p:contains('Error!')").length > 0) {
$("input#surname").addClass('yourclass');
}
答案 4 :(得分:0)
我建议将error
css类添加到验证程序的CssClass
属性中,以便它已经呈现给服务器端。这样,如果您更改错误消息,则无需更改任何javascript即可显示它。
<asp:RequiredFieldValidator ID="requiredValidator" CssClass="error" ControlToValidate="..." ErrorMessage="You must complete this field"/>
或者,如果您希望使用相同的类设置所有验证器的样式,可以将以下脚本添加到母版页。
$(document).ready(function()
{
if (Page_Validators != null)
{
for (i = 0; i < Page_Validators.length; i++)
{
Page_Validators[i].className = "error";
}
}
});