谁使jquery函数与所有输入一起工作

时间:2017-03-16 10:52:13

标签: jquery css

是否可以使用我的结帐页面上的所有输入进行此操作? - 所以我不需要像现在这样做新的一个?

    $(document).ready(function(){
    $('#checkout-firstnamea').blur(function(){
         if (this.value == "") { 
            $(this).removeClass("asd");
            $(this).addClass('asd-red');
        }
    });
});
$(document).ready(function(){
    $('#checkout-lastnamea').blur(function(){
         if (this.value == "") { 
            $(this).removeClass("asd");
            $(this).addClass('asd-red');
        }
    });
});

5 个答案:

答案 0 :(得分:1)

由于处理程序的内容相同,您只需要一个选择器来选择所有目标元素。例如,这将精确选择那些两个输入:

$('#checkout-firstnamea, #checkout-lastnamea')

或者这会选择所有文字输入:

$('input[type="text"]')

或者这将选择页面上的所有输入:

$('input')

或输入并选择:

$('input, select')

或指定容器元素中的所有输入和选择:

$('#someContainer input, #someContainer select')

基本上,制作您的选择器以识别您想要识别的全部内容。相同的处理程序将应用于所有匹配的元素。您可以在jQuery文档中使用 wide 种选择器,它们可以以您需要的任何方式组合。

答案 1 :(得分:0)

您只需将Set分隔的ID添加到同一位置,然后只使用,一次:

blur

$('#checkout-firstnamea, #checkout-lastnamea').blur(function() { if (this.value == "") { $(this).removeClass("asd"); $(this).addClass('asd-red'); } }); 也可以做到这一点,但这将选择所有输入而不考虑其类型:

$('input')

但是如果你想定位你可以使用的特定输入类型(在这种情况下我们的目标是$('input').blur(function() { if (this.value == "") { $(this).removeClass("asd"); $(this).addClass('asd-red'); } }); 类型,但它可以是text等):

checkbox, email, tel

这适用于$('input[type="text"]').blur(function() { if (this.value == "") { $(this).removeClass("asd"); $(this).addClass('asd-red'); } }); 类型的输入。另一种方式(我认为这是一种更好的方法)是在你想要定位的元素上使用相同的text

答案 2 :(得分:0)

这在jquery中很简单。您可以选择所有输入:

 $('input') // This will select all of the inputs on your page.

如果您只想选择input type="text",可以执行以下操作:

 $('input[type="text"]')

如果您只想选择input type="checkbox",可以执行以下操作:

 $('input[type="checkbox"]')

如果您想循环选择,可以执行以下操作:

  $('input[type="text"]').each(function(){
       $(this) // here it is your current input element which is a textbox
  })

答案 3 :(得分:0)

您只需使用输入选择器而不是id:

$(document).ready(function(){
    $('input[type="text"]').blur(function({
       if (this.value == "") { 
        $(this).removeClass("asd");
        $(this).addClass('asd-red');
    }
    }));
});

如果它在特定表格上,您可以使用:

$('#yourformid input[type="text"]')

而不是:

$('input[type="text"]')

答案 4 :(得分:0)

可以通过一些普通的课程轻松实现。

为此,需要为所需元素添加公共类:

如下所示,假设checkout_fields是您的公共类,请执行以下操作:

<input type="text" name="checkout-firstnamea" class="checkout_fields" id="checkout-firstnamea">

<input type="text" name="checkout-lastnamea" class="checkout_fields" id="checkout-lastnamea">

$(document).ready(function(){

     $(document).on("blur",".checkout_fields",function(){

           if ($(this).val() == "") { 

               $(this).removeClass("asd");
               $(this).addClass('asd-red');
          }

    });

});