jQuery 表单验证分配提交按钮
jQuery Form Validation Assign Submit Button
所以,我有一个表单和2个按钮,1个按钮仅用于验证电子邮件,同时另一个按钮是表单提交按钮。我正在使用 jQuery 验证来验证表单。
我想要的是只有SUBMIT按钮可以通过submitHandler
提交表单并执行alert("success")
,但是每当我点击VERIFY按钮,它也是通过submitHandler
提交表单并执行alert("success")
.
这是脚本:
index.html
:
<form id="form_data">
<div class="form-group">
<label>Phone Number</label>
<input id="phone_number" name="phone_number" required>
</div>
<div class="row">
<div class="form-group col-9">
<label>Email</label>
<input id="email" name="email" required>
</div>
<div class="form-group col-3">
<button id="btn_email">VERIFY</button>
</div>
</div>
<div>
<button id="form_data_submit" type="submit">SUBMIT</button>
</div>
</form>
script.js
jQuery(document).ready(function () {
var btnSubmitEl = $("#form_data_submit");
var formEl = $("#form_data");
formEl.validate({ // initialize jquery validation plugin
rules: {
phone_number: {
required: true,
number: true,
minlength: 7,
maxlength: 12
},
email: {
required: true,
minlength: 7,
maxlength: 20
}
},
submitHandler: function (form) {
alert("success")
return false;
}
});
});
我是不是遗漏了什么?
谢谢
您应该在使用 HTML5 时为验证按钮明确设置 type=”button"
。
默认按钮行为提交表单。
已经回答 here
您不需要 2 个按钮来验证表单您可以仅使用一个按钮来验证表单并提交,如果出于某种原因您想要使用 2 个按钮,则必须使用 2 个事件侦听器,其中一个用于验证按钮一个用于提交按钮,以及您的验证按钮提交表单的原因是因为 formEl.validate
需要一个对象,在该对象内部有一个名为 submitHandler
的函数,它在验证后提交表单所以您必须将其设置为 return false。
我已经在下面的代码中实现了这个
jQuery(document).ready(function () {
var btnSubmitEl = $("#form_data_submit");
var formEl = $("#form_data");
var verifybtn=$("#btn_email");
btnSubmitEl.on("click",()=>{
formEl.submit()//
alert("success")
})
verifybtn.on("click",()=>{
formEl.validate({ // initialize jquery validation plugin
rules: {
phone_number: {
required: true,
number: true,
minlength: 7,
maxlength: 12
},
email: {
required: true,
minlength: 7,
maxlength: 20
}
},
submitHandler: function () {
return false;
}
});
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="form_data">
<div class="form-group">
<label>Phone Number</label>
<input id="phone_number" name="phone_number" required>
</div>
<div class="row">
<div class="form-group col-9">
<label>Email</label>
<input id="email" name="email" required>
</div>
<div class="form-group col-3">
<button id="btn_email">VERIFY</button>
</div>
</div>
<div>
<button id="form_data_submit" type="submit">SUBMIT</button>
</div>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js"></script>
所以,我有一个表单和2个按钮,1个按钮仅用于验证电子邮件,同时另一个按钮是表单提交按钮。我正在使用 jQuery 验证来验证表单。
我想要的是只有SUBMIT按钮可以通过submitHandler
提交表单并执行alert("success")
,但是每当我点击VERIFY按钮,它也是通过submitHandler
提交表单并执行alert("success")
.
这是脚本:
index.html
:
<form id="form_data">
<div class="form-group">
<label>Phone Number</label>
<input id="phone_number" name="phone_number" required>
</div>
<div class="row">
<div class="form-group col-9">
<label>Email</label>
<input id="email" name="email" required>
</div>
<div class="form-group col-3">
<button id="btn_email">VERIFY</button>
</div>
</div>
<div>
<button id="form_data_submit" type="submit">SUBMIT</button>
</div>
</form>
script.js
jQuery(document).ready(function () {
var btnSubmitEl = $("#form_data_submit");
var formEl = $("#form_data");
formEl.validate({ // initialize jquery validation plugin
rules: {
phone_number: {
required: true,
number: true,
minlength: 7,
maxlength: 12
},
email: {
required: true,
minlength: 7,
maxlength: 20
}
},
submitHandler: function (form) {
alert("success")
return false;
}
});
});
我是不是遗漏了什么?
谢谢
您应该在使用 HTML5 时为验证按钮明确设置 type=”button"
。
默认按钮行为提交表单。
已经回答 here
您不需要 2 个按钮来验证表单您可以仅使用一个按钮来验证表单并提交,如果出于某种原因您想要使用 2 个按钮,则必须使用 2 个事件侦听器,其中一个用于验证按钮一个用于提交按钮,以及您的验证按钮提交表单的原因是因为 formEl.validate
需要一个对象,在该对象内部有一个名为 submitHandler
的函数,它在验证后提交表单所以您必须将其设置为 return false。
我已经在下面的代码中实现了这个
jQuery(document).ready(function () {
var btnSubmitEl = $("#form_data_submit");
var formEl = $("#form_data");
var verifybtn=$("#btn_email");
btnSubmitEl.on("click",()=>{
formEl.submit()//
alert("success")
})
verifybtn.on("click",()=>{
formEl.validate({ // initialize jquery validation plugin
rules: {
phone_number: {
required: true,
number: true,
minlength: 7,
maxlength: 12
},
email: {
required: true,
minlength: 7,
maxlength: 20
}
},
submitHandler: function () {
return false;
}
});
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="form_data">
<div class="form-group">
<label>Phone Number</label>
<input id="phone_number" name="phone_number" required>
</div>
<div class="row">
<div class="form-group col-9">
<label>Email</label>
<input id="email" name="email" required>
</div>
<div class="form-group col-3">
<button id="btn_email">VERIFY</button>
</div>
</div>
<div>
<button id="form_data_submit" type="submit">SUBMIT</button>
</div>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js"></script>