如何使用jquery仅遍历表单中的文本框元素

时间:2010-08-17 17:17:47

标签: jquery jquery-selectors

单击按钮时,我有一个包含4个文本字段的表单 我们应该看到至少有一个文本字段应该包含值,并且应该提交表单 并且表单也包含输入类型的Button。我只想要文本框字段值

$("#mybutton").click(function(){

$(":input").each(function(){
  if($(this).value!=''){
    $("#myform").submit();

 }

});
});

4 个答案:

答案 0 :(得分:6)

您可以将:text用于选择器,将.filter()缩小到具有值的.length,然后选中{{3}},如下所示:

$("#mybutton").click(function(){
  if($(":text").filter(function(){ return this.value!=''; }).length)
    $("#myform").submit();
});

检查任何是否为空,如果是这种情况,则提交表单一次。


这是另一种检查<form>提交的替代方案,对道格评论的赞美:

$("#myform").submit(function(){
  if(!$(":text").filter(function(){ return this.value!=''; }).length)
    return false;
});

答案 1 :(得分:3)

首先,绑定到form提交不按钮点击。如果用户在字段中点击enter/return,则会在没有支票的情况下提交您的表单:

$("form").submit(function (e) {
  var fields = $(this).find(':text'),
      cancel = true;

  fields.each(function (i, el) {
    if (el.value) {
      cancel = false;
      return false; // exit this loop
    }
  });

  if (cancel) {
    e.preventDefault(); // cancel submit since all fields are blank
  }      
});

答案 2 :(得分:1)

试一试。我已将:input选择器替换为:text以仅获取文本框。您还在jquery对象上调用.value而不是使用.val()方法。

$("#mybutton").click(function() {
    $(":text").each(function() {
        if($(this).val() !='') {
            $("#myform").submit();
            return false;
        }
    });
});

答案 3 :(得分:1)

使用input:text选择器获取所有文本框。

$("input:text")