Почему мой jquery не работает для тега span - PullRequest
1 голос
/ 09 апреля 2010

Я пытаюсь отобразить какое-то сообщение в диапазоне. но это не работает.

<script type="text/javascript">
    $(document).ready(function(){
            /****************************First Name validation******************************/
        $("#txtFirstName").bind("focusout",function(){
                if($(this).val()=="" || $(this).val()=="First Name")
                    {
                    $(this).siblings("span[id*='error']").text("First Name Required");
                    $(this).val("First Name");
                    }   
            });

        $("#txtFirstName").bind("focusin",function(){
                if($(this).val()=="First Name")
                    {
                    $(this).siblings("span[id*='error']").show("slow").text("");
                    $(this).val("");                    
                    }   
            }); /********************End First Name validation*****************************/
    });

Вот мой HTML-код для кода выше

 <td><input id="txtFirstName" type="text" value="First Name" runat="server"/><span class="error"></span></td>

Ответы [ 4 ]

6 голосов
/ 09 апреля 2010
$(this).siblings("span.error").text("First Name Required");
4 голосов
/ 09 апреля 2010

Вы должны использовать class вместо id:

$(this).siblings("span[class*='error']").text("First Name Required");

Но если полное имя класса всегда error, вы можете просто использовать span.error или даже лучше, если span всегда идет после input, используйте .next():

$(this).next().text("First Name Required");
3 голосов
/ 09 апреля 2010

Ivo правильно, вам нужно span.error для селектора в этом случае. Тем не менее, вы можете немного упростить код, используя цепочку и используя комбинации .focusin() и .focusout():

$(function(){
  $("#txtFirstName").focusin(function(){
      if($(this).val()=="First Name")
          $(this).val("").siblings("span.error").hide();
  }).focusout(function(){
      if($(this).val()=="" || $(this).val()=="First Name")
         $(this).val("First Name").siblings("span.error")
                .text("First Name Required").fadeIn();
  });
});
0 голосов
/ 09 апреля 2010

Для селектора диапазона попробуйте: span.error

$(this).siblings("span.error").text("First Name Required");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...