首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery .submit()

jquery .submit()
EN

Stack Overflow用户
提问于 2010-11-06 18:22:32
回答 3查看 638关注 0票数 1

试图在没有<form>标记的情况下对表单进行验证。

它是一个使用ajax的cms插件的结构,它不知道为什么输入没有用<form></form>包装。

Html:

代码语言:javascript
复制
<div class="feedback">
    <input id="name" type="text" name="ajax-name" value="Your name" />
    <input id="mail" type="text" name="ajax-mail" value="Your e-mail" />
    <button type="submit" id="done">Send</button>
</div>

联署材料:

代码语言:javascript
复制
$(".feedback #done").click(function() {
    var flag = true;
    if (!$("#name").val()){
        $("#name").addClass('error');
        flag = false;
    }
    if (flag == true)
        $(".feedback").submit();
});

这个代码不起作用。

如何在没有<form> 标记的情况下对表单进行验证?

Ajax不知道这种验证。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-06 18:29:12

而不是

代码语言:javascript
复制
if (flag == true) 
    $(".feedback").submit(); 

代码语言:javascript
复制
return flag;

如果没有<form>,就不能提交,但是可以防止甚至允许click()完成。以下是完整的代码:

代码语言:javascript
复制
$(".feedback #done").click(function() { 
    var flag = true; 
    if (!$("#name").val()){ 
        $("#name").addClass('error'); 
        flag = false; 
    }

    //return the value of flag instead of working with submit() 
    return flag;
});

如果单击事件返回false,则应阻止单击进一步进行。您的标志变量将为true或false,这取决于验证的工作方式,因此这将决定流程是否向前移动。

票数 2
EN

Stack Overflow用户

发布于 2010-11-06 18:52:02

完成工作的另一种方法是将.feedback的所有子节点封装为一个<form >标记,然后在<form id="someid">上执行.submit()

代码语言:javascript
复制
$(function () {
    $('.feedback').children().wrapAll('<form id="form" />');
    $('.feedback #done').click(function () {
        var flag = true;
        if (!$("#name").val()) {
            $("#name").addClass('error');
            flag = false;
        }
        if (flag) {
            $("#form").submit();
            return false;
        }
    });
});
票数 0
EN

Stack Overflow用户

发布于 2012-07-20 18:47:49

@编辑,所以我实际上读了这个问题,尽管它很古老,但它似乎仍然相关.

如果使用.change()或.bind()或.on(),则只需使用jQuery 1.7扩展提交按钮即可。e.preventDefault()可以使用ajax处理程序吗?链子的刺眼解锁功能,如下所示:

代码语言:javascript
复制
var some_flag_bool = false;
$('#done').click( function (e) {
  e.preventDefault();
  some_flag_bool = true;
  $(this).unbind('#done').submit();
  //return might be considered optional
  return this.some_flag_bool;
});

或者类似于jQuery 1.7中的东西,试图尽早捕捉到:

代码语言:javascript
复制
function validation() { if (!foo) { throw new Error("oh noz!"); }
$('body').on('change', 'input', function() { validation(); });

当文档准备就绪时,$.attr(“禁用”、“禁用”)按钮以及验证方法中的$.removeAttr(“禁用”)是否可以

但是,如果是我,我只会从我的ajax处理程序调用验证方法,或者使用jQuery.validation插件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4114460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档