0

我有条件选择器的问题。我有一些输入字段。我想更改具有必需属性的空字段的边框颜色。

我尝试了什么:

$("[required='required']").css({
      "border": "1px solid #FF0000",
      "background": "#FFEFFF"
  });

  $("[required='required']").blur(function ()  {
    comp(this);
  });

$("[required='required']").keyup(function ()  {
    comp(this);
  });

$("[required='required']").click(function ()  {
    comp(this);
  });

  function comp(a) {
      if ($(a).val() !== "")
          $(a).css({
          "border": "1px solid #ccc",
          "background": ""
      });

      else $(a).css({
          "border": "1px solid #FF0000",
          "background": "#FFEFFF"
      });

  }

这是一个链接:http: //jsfiddle.net/guwanchat/HjzVu/14/

4

1 回答 1

1

我认为你的问题是你没有根据comp函数初始化你的元素。

我从此修改了您的起始代码:

$("[required='required']").css({
      "border": "1px solid #FF0000",
      "background": "#FFEFFF"
});

对此:

$("[required='required']").each(function () {
    comp(this);
});

我使用 jQueryeach函数来迭代匹配选择器的对象并调用 comp 函数来初始化它们。

jQuery.each()

描述:一个通用迭代器函数,可用于无缝迭代对象和数组。具有长度属性的数组和类数组对象(例如函数的 arguments 对象)通过数字索引进行迭代,从 0 到 length-1。其他对象通过其命名属性进行迭代。

这是一个小提琴:http: //jsfiddle.net/HjzVu/19/

于 2013-06-24T06:31:36.923 回答