代码之家  ›  专栏  ›  技术社区  ›  Jules Colle

jquery:在所有空文本框中输入默认值

  •  3
  • Jules Colle  · 技术社区  · 14 年前

    文本框引用 <input type="text"> 在这个问题上。

    对于具有给定类的每个文本框,我要检查值是否等于 '' ,如果它是,我想使价值 '0' . 我想在页面加载后立即执行此操作。

    这是我现在最接近的:

    $(document).ready(function() {
      if ($('.myclass').val() == '') $('.myclass').val('0');
    })
    

    这里的问题是,这个代码将给出我的所有文本框 class="myclass" 价值 “0” 只要其中一个是空的。我知道考虑到我现在使用的代码,这是预期的行为,但是我对jquery还很陌生,我还没有真正掌握选择器的窍门。我该如何解决这个问题?我需要创建一个单独的函数来检查一个元素,然后为应用于选择器的每个元素调用这个函数吗?如果是,我该怎么做?

    4 回复  |  直到 14 年前
        1
  •  8
  •   Andy E    14 年前

    在jQuery 1.4中, a function can be passed Val.() 它将在集合中的所有元素上执行:

    $(document).ready(function() {
      $('.myclass').val(function (index, value) {
        // If the element has a value, return it, else return "0"
        return value || "0";
      });
    });
    

    Example

    对于早于jquery 1.4的版本,需要使用 .each() 在集合中:

    $(document).ready(function() {
        $('.myclass').each(function() {
            this.value = this.value || "0";
        });
    });
    

    Example

        2
  •  3
  •   Georg Schölly Crazy Developer    14 年前

    这可能是最简单的答案:

    $("input.myclass[value=]").val("0");
    

    只选择没有值的元素。这是因为value属性反映了用户输入的文本。

        3
  •  1
  •   Bang Dao    14 年前

    尝试

    $(document).ready(function() {
      $('.myclass[type=checkbox]').each(function(){
          if($(this).val()=='')
              $(this).val('0');
        });
    })
    
        4
  •  0
  •   Haim Evgi    14 年前
    $(document).ready( function() {
      $('input:checkbox').each( function() {
        // check the val
        if( $(this).val()=='')
          // do something
      });
    });