2014-03-28 22 views
-1

的问题,我有以下的Jquery与jQuery的事件

$('#txtSearch_text').attrchange(function (attrName) { 
        if (counter > 0) { 
         var contains = $('#txtSearch_text').attr('class').indexOf("validation"); 

         if ($('#txtSearch_text').val() == '' && contains <= -1) { 
          $('#txtSearch_text').addClass('validation'); 
         } 
         else if ($('#txtSearch_text').val() != '' && contains >= 0) { 
          $('#txtSearch_text').removeClass('validation'); 

         } 
        } 

        //counter = 1; 

       }); 

上面jQuery的火灾时,txtSearch文本框更改任何属性。它工作正常。但我想为多个TextBoxes之上的Jquery开火..所以如果我有4个TextBox,那么我将不得不为4个不同的TextBox编写Jquery 4次。

有没有办法在jquery上面写所有的TextBox只有一次?

感谢

+0

使用类而不是ID的,或者在函数 –

+0

中使用'''''''''',使用'class',并使用'$(this)'' –

回答

1

您可以为所有四个文本框,通过逗号seprated选择。和内使用$(this)获取当前对象reference.Like这样的:

$('#txtSearch_text,#txtSearch_second,#txtSearch_third,#txtSearch_fourth').attrchange(function (attrName) { 
    if (counter > 0) { 
     var contains = $(this).attr('class').indexOf("validation"); 
    if ($(this).val() == '' && contains <= -1) { 
    $(this).addClass('validation'); 
    } 
    else if ($(this).val() != '' && contains >= 0) { 
    $(this).removeClass('validation'); 
    }}}); 
1

txtSearch_text添加一个公共类的所有4个元素,然后用它作为选择的目标他们

$('.txtSearch_text').attrchange(function (attrName) { 
    if (counter > 0) { 
     var contains = $(this).attr('class').indexOf("validation"); 

     if ($(this).val() == '' && contains <= -1) { 
      $(this).addClass('validation'); 
     } else if ($(this).val() != '' && contains >= 0) { 
      $(this).removeClass('validation'); 

     } 
    } 

    //counter = 1; 

});