Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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
Jquery 防止Django表单使用无效输入隐藏_Jquery_Django - Fatal编程技术网

Jquery 防止Django表单使用无效输入隐藏

Jquery 防止Django表单使用无效输入隐藏,jquery,django,Jquery,Django,我设计了自己的lightboxy类型的事件,在用户提交好数据的情况下,所有这些都能完美地工作。如果触发了验证错误,表单将提交,刷新页面,my JS总是在页面重新加载时隐藏表单。因此,在用户看来,数据似乎已被接受,而实际上只是隐藏了数据,并显示了验证错误。我如何才能最好地防止这种情况发生 我的HTML: <div class='jobfrm'> <span class='closex' >&#10006;</span> <form

我设计了自己的lightboxy类型的事件,在用户提交好数据的情况下,所有这些都能完美地工作。如果触发了验证错误,表单将提交,刷新页面,my JS总是在页面重新加载时隐藏表单。因此,在用户看来,数据似乎已被接受,而实际上只是隐藏了数据,并显示了验证错误。我如何才能最好地防止这种情况发生

我的HTML:

<div class='jobfrm'>
    <span class='closex' >&#10006;</span>
    <form method='POST' action = '' class='addjob'>{% csrf_token %}
        {{form|crispy}}
        <input class = 'btn btn-default' type = 'submit' value = 'Submit'/>
    </form> 
</div>  
<div class='opacitydiv'>

</div>
我的JS:

// addjobs form js
(function(){
    var ajform=$('.jobfrm'),
        opa =$('.opacitydiv'),
        w = $(window).width()/2-ajform.outerWidth()/2,
        h = ($(window).height()-ajform.outerHeight())/2;
    opa.hide();
    ajform.hide();
    $('#addjob').on('click',function(){
        opa.show({
            'left':0,
            'top':0
        });
        ajform.show();
        ajform.animate({
            'left':w,
            'top':h
        });
    });
})();


//closes div and form
(function(){
    var ajform=$('.jobfrm'),
        opa = $('.opacitydiv'),
        close= $('.closex');
    opa.on('click',function(){
        opa.hide();
        ajform.hide();        
    });
    close.on('click',function(){
        opa.hide();
        ajform.hide();   
    });    
})();

PS:如果您看到一些可以改进但与此问题没有直接关系的内容,请随时对我的代码的其他不相关方面进行评论。

如果出现错误,您可以使用另一个设置为的类:

<div class='jobfrm{% if form.errors %} has_errors{% endif %}'>

如果出现错误,可以使用设置的表单中的另一个类:

<div class='jobfrm{% if form.errors %} has_errors{% endif %}'>

起初我认为这不起作用,因为我的表单显示在屏幕上,但在页面的下方。我花了几分钟才弄明白。谢谢,我从来不知道你可以用类和django标记来实现这一点。这是有道理的,但我从来没有想到它。起初我以为它不起作用,因为我的表单显示在屏幕上,但在页面的下方。我花了几分钟才弄明白。谢谢,我从来不知道你可以用类和django标记来实现这一点。这是有道理的,但从未想过
var ajform=$('.jobfrm')
if (!ajform.hasClass('has_errors')) {
    ajform.hide();
}