【问题标题】:Why doesn't my form Submit when I try to submit without using submit button为什么我在不使用提交按钮的情况下尝试提交时我的表单不提交
【发布时间】:2012-01-22 18:06:24
【问题描述】:

以下是我要验证的代码:

$(function () {
    function validateform() {
        // Code
    }
    $('#myform').submit(validateform);
});

关于这件作品的操作,我想提交这个

<form id="myform" name="form"  action="http://www.google.com">
   // Form elements inputs, textarea 
   <div class="line"><span class="miss">Send Your Message</span>
</form>

点击发送您的消息,应提交表单。

【问题讨论】:

  • 你想通过点击Send Your Message提交你的&lt;form /&gt;吗?

标签: javascript jquery html forms


【解决方案1】:

您没有触发submit 方法。要触发该方法,您只需要在不带参数的情况下调用它:$('#myform').submit()。如果您使用带有参数的submit 方法,那么您只是在注册一个事件处理程序。

所以你需要修改你的代码:

$(function () {
  function validateform() {
      // Code
  }
  $('#myform').submit(validateform); // This will register an event handler.
  $('#myform').submit();             // This will trigger the submit event.
});

see the docs for jQuery submit method


编辑

Mike,如果您只想通过&lt;span /&gt; 提交您的&lt;form /&gt;,您可以编写以下代码:

$(function () {
  function validateform() {
      // Code
  }
  $('#myform').submit(validateform);

  $('span.miss').click(function() {
    $('#myform').submit();
  });
});

【讨论】:

  • 那么这个小提琴如何在不触发提交的情况下工作:jsfiddle.net/DaDQT/6
  • 提交是通过 HTML 提交按钮触发的,但不是以编程方式。在 JavaScript 中,您只是为&lt;form /&gt;onsubmit 事件注册事件处理程序。然后在每次按下 HTML 提交按钮时执行。
【解决方案2】:
  function validateForm() {
      if (validation code) {
          $('form#myform').submit();
      } else {
          //display validation errors
          return false;
      }
  }

  $(function () {
      $('form#myform .miss').click(validateForm);
  });

【讨论】:

    【解决方案3】:

    这段代码基本上可以工作,并检查空间验证

    $(function() {
                function validate() {
                    var valid = true;
                    $(".error").remove();
                    $(".req").each(function() {
                        if($(this).val() == "" ||  $(this).val().replace(/\s/g, '').length == 0) {
                            $(this).after("<span class='error'>You should fill this field</span>");
                            valid = false;
                        }
                    });
                    return valid;
    
                }
    
                    $('span.classofspantag').click(function() {
                    $('#myform').submit(validate);
                        $('#myform').submit();
                    });
    
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多