如何使用jquery仅迭代表单中的文本框元素

发布于 2024-09-14 09:34:48 字数 241 浏览 3 评论 0原文

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

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

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

 }

});
});

I have a form which contains 4 text fields when the button is clicked
we should see that atleast one of the textfield should contain the value and the form should get submitted
and the form also contains the Button which of input type too .I want only textbox field values

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

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

 }

});
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

战皆罪 2024-09-21 09:34:48

您可以使用 :text 作为选择器,.filter() 向下查找具有值的值并检查 .length,如下所示:

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

这会检查是否有任何不为空,如果是这样,请提交表单一次。


这是检查

提交的替代方案,这是对 doug 评论的补充:

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

You can use :text for the selector, .filter() down to ones that have a value and check the .length, like this:

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

this checks if any aren't empty, and if that's the case, submits the form once.


And here's an alternative that checks on <form> submit, compliments of doug's comment:

$("#myform").submit(function(){
  if(!$(":text").filter(function(){ return this.value!=''; }).length)
    return false;
});
攀登最高峰 2024-09-21 09:34:48

首先,绑定到 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
  }      
});

First, bind to form submit not button click. If a user hits enter/return in a field, it will submit your form without the checks:

$("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
  }      
});
栀梦 2024-09-21 09:34:48

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

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

Try this out. I've replaced your :input selector with :text to only get textboxes. Also you were calling .value on the jquery object rather than using the .val() method.

$("#mybutton").click(function() {
    $(":text").each(function() {
        if($(this).val() !='') {
            $("#myform").submit();
            return false;
        }
    });
});
烟酉 2024-09-21 09:34:48

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

$("input:text")

Use the input:text selector to get all the textboxes.

$("input:text")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文