jQuery:在所有空文本框中放置一个默认值

时间:2010-08-11 08:56:45

标签: jquery

文本框在此问题中引用<input type="text">

对于具有给定类的每个文本框,我想检查值是否等于'',如果是,我想要设置值'0'。我想在页面加载后立即这样做。

这是我现在最接近的:

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

这里的问题是,只要其中一个为空,此代码就会为我的所有文本框(class="myclass")提供值'0'。我知道这是我现在使用的代码所期望的行为,但我对jQuery很新,我还没有真正掌握选择器。我该如何解决这个问题?我是否需要创建一个单独的函数来检查一个元素,然后为每个应用于选择器的元素调用它?如果是这样,我该怎么做?

4 个答案:

答案 0 :(得分:8)

在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

答案 1 :(得分:3)

这可能是最简单的答案:

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

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

答案 2 :(得分:1)

尝试

$(document).ready(function() {
  $('.myclass[type=checkbox]').each(function(){
      if($(this).val()=='')
          $(this).val('0');
    });
})

答案 3 :(得分:0)

$(document).ready( function() {
  $('input:checkbox').each( function() {
    // check the val
    if( $(this).val()=='')
      // do something
  });
});