Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery提交表单 html代码_Javascript_Jquery_Html_Validation - Fatal编程技术网

Javascript jQuery提交表单 html代码

Javascript jQuery提交表单 html代码,javascript,jquery,html,validation,Javascript,Jquery,Html,Validation,该代码确保没有输入字段为空,它发现一个空字段,然后会出现错误消息,否则应提交,但提交不起作用 尝试使用$(this)[0].submit()。使用$(this)引用表单的jQuery对象引用。我不知道jQuery的submit()方法实际上做了什么,但它显然没有提交表单。使用$(this)[0]引用实际的DOM元素,该元素将使用标准的DOM提交方法,这正是您要查找的 我相信您已经知道这一点,但您应该使用服务器端和客户端验证,因为有些用户没有JS,有些用户会故意篡改您的表单。只是一句简短的“别忘了

该代码确保没有输入字段为空,它发现一个空字段,然后会出现错误消息,否则应提交,但提交不起作用

尝试使用
$(this)[0].submit()。使用$(this)引用表单的jQuery对象引用。我不知道jQuery的
submit()
方法实际上做了什么,但它显然没有提交表单。使用
$(this)[0]
引用实际的DOM元素,该元素将使用标准的DOM提交方法,这正是您要查找的


我相信您已经知道这一点,但您应该使用服务器端和客户端验证,因为有些用户没有JS,有些用户会故意篡改您的表单。只是一句简短的“别忘了”

您可以删除
e.preventDefault()
并使用
return
insead:

$('form').on('submit', function(e){
    var errorCount = 0;
    $('span.errorMessage').text('');
    $('input').each(function(){
        var $this = $(this);
        if($this.val() === ''){
            var error = 'Please fill ' + $this.prev('label').text();
            $this.next('span').text(error);
            errorCount = errorCount + 1;   
        }
    });
    return errorCount === 0;
});
演示:

查看。为此,您可以为任何必需的输入字段添加一个
class=“required”
,只需对其调用
validation

$('form').validation({
  // any options you want
});
它还可以做一些方便的事情,比如显示错误消息、执行条件验证等

$('form').on('submit',function(e){
    var errorCount = 0;
    $('span.errorMessage').text('');
    $('input').each(function(){
        var $this = $(this);
        if($this.val() === ''){
            var error = 'Please fill ' + $this.prev('label').text();
            $this.next('span').text(error);
            errorCount = errorCount + 1;   
        }
    });
    if(errorCount === 0){
        alert('done'); // just an alert to notice when everything OK [remove it]
        $this.submit(); // submit the form on success
    } else e.preventDefault(); // halt the submission on default
  });

我不知道确切的问题。但是你知道jquery中有这个函数吗?我正在使用它,看它在jQuery代码中的最后一行,问题是为什么这个提交不起作用?你应该真的考虑用A代替这个。@ WilliamKinaan啊,我没有发现它^ ^;试试这个:if(errorCount!==0){return false;}并用其他浏览器测试你的表单。你是唯一的人,它可以工作谢谢你我会在我允许的时候接受答案谢谢你,但我需要做e.preventDefault,答案是$(this)[0]。submit()只是出于兴趣,为什么你需要
e.default
这里?@William Kinaan我想你想要这样的东西。准确地检查代码和演示。你需要包括实际的插件,文档都可以在我提供的链接上找到。
$('form').validation({
  // any options you want
});
$('form').on('submit',function(e){
    var errorCount = 0;
    $('span.errorMessage').text('');
    $('input').each(function(){
        var $this = $(this);
        if($this.val() === ''){
            var error = 'Please fill ' + $this.prev('label').text();
            $this.next('span').text(error);
            errorCount = errorCount + 1;   
        }
    });
    if(errorCount === 0){
        alert('done'); // just an alert to notice when everything OK [remove it]
        $this.submit(); // submit the form on success
    } else e.preventDefault(); // halt the submission on default
  });