在表单验证后运行单击JavaScript

时间:2015-10-21 14:08:21

标签: javascript jquery html validation

我尝试在验证并点击后按钮上运行JavaScript代码。我可以在没有任何验证的情况下运行代码,但是当我添加"如果有效"在第2行中,JavaScript根本不会运行,表单也不会提交。

这是一个正常工作的JS,除了每次单击按钮时它都会运行。我想只在表单有效时运行它。

<script>        
$('.subscribe-form-submit').click(function(){
        var $this = $(this);
        $(this).hide();
        $(this).after('<input type="button" disabled="disabled" class="btn btn-lg btn-primary subscribe-form-submit" value="Thanks!" />');
        return true;
        }
);
</script>

我试图添加一个if有效的选择器,但是表单根本没有提交并且JS没有运行:

<script>
    $('.subscribe-form-submit').click(function(){
    if($('_form_1228').valid()) {
        var $this = $(this);
        $(this).hide();
        $(this).after('<input type="button" disabled="disabled" class="btn btn-lg btn-primary subscribe-form-submit" value="Thanks!" />');
        return true;
        }
});
</script>

这是我的表单,但我相信您需要的唯一信息是ID为&#34; _form_1228&#34;。

<form action='excluded' method='post' id='_form_1228' class="subscribe-form wow fadeIn" data-wow-duration="1s" role="form" accept-charset='utf-8' enctype='multipart/form-data' target="_blank">
<div class="form-validation alert"><!-- Validation Message here --></div>
<div class="form-group subscribe-form-input">
    <input type='hidden' name='f' value='1228'>
    <input type='hidden' name='s' value=''>
    <input type='hidden' name='c' value='0'>
    <input type='hidden' name='m' value='0'>
    <input type='hidden' name='act' value='sub'>
    <input type='hidden' name='nlbox[]' value='20'>
    <div id='compile999'>
        <input type="email" name="email" class="subscribe-form-email form-control form-control-lg" placeholder="Enter your email address" autocomplete="off" />
    </div>  
    <div id='_field1000'>
        <div id='compile1000'>
            <button class="subscribe-form-submit btn btn-black btn-lg" type="submit" data-loading-text="Loading...">Subscribe</button>
        </div>  
    </div>  
</div>

谢谢!

1 个答案:

答案 0 :(得分:0)

您的选择器出现问题... 见;

if($('_form_1228').valid()) {

应该是;

if($('#_form_1228').valid()) {

也是这个;

 if($this.hasClass('.subscribe-form-submit')){

应该是:

 if($this.hasClass('subscribe-form-submit')){

总而言之,当您使用jquery选择元素时,请使用。类上的(点)字符,元素id上的#(哈希)#。但是,当您检查该元素是否具有hasClass函数的特定类时,您不应该使用。你的班级名称开头的(点)字符。