我尝试在验证并点击后按钮上运行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>
谢谢!
答案 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函数的特定类时,您不应该使用。你的班级名称开头的(点)字符。