我正在尝试使用ValidationEngine(https://github.com/posabsolute/jQuery-Validation-Engine) 我需要验证一个字段(用于电子邮件),然后才能验证整个表单:
$(document).on("click", "#EmailButton", function(){
var valid=$("#Email").validationEngine('validate');
alert(valid);
})
$("#<?=$formName?>").validationEngine({
promptPosition:'topLeft',
scroll: false,
binded: false,
onValidationComplete: function(form, status){
if(status==true){
$.ajax({
type: "POST", ... ... ... }
}
因此,当我点击#EmailButton
时,应验证#Email
字段,而不是整个表单。
但是当点击#EmailButton
时,会运行$("#<?=$formName?>").validationEngine({
的ajax脚本!
我需要此功能,因为我希望在填写#Email
字段后对表单进行一些更改(如果电子邮件是否在数据库中)。
如何在运行#Email
脚本之前验证$("#<?=$formName?>").validationEngine({})
字段?
感谢。
答案 0 :(得分:1)
试试这个:
在HTML中:
<form id="emailForm">
Email:<input type="email" id="txtEmail" class="validate[required,custom[email],maxSize[30]]"/>
<input type="button" value="Email Verify" onclick="emailCheck()"/>
</form>
在Jquery中:
function emailCheck()
{
if($("#emailForm").validationEngine('validate') == true)
{
alert('valid');
}
else
{
alert('not valid');
}
}
答案 1 :(得分:1)
之前的答案是不正确的,只是因为jQuery Validation Engine的代码也不正确。由于当前版本中的错误,此代码段的布尔值实际上是向后的。尝试将“true”更改为“false”,您应该得到一个有效的结果。以下是更正后的示例(假设相关字段的ID为'email'):
function validateEmail() {
var isValid = !$("#email").validationEngine('validate');
// You may delete the following two lines after confirming that things are working:
if (isValid) alert('valid');
else alert('not valid');
return isValid; // leave this line in -- it will return the result of validation
}
答案 2 :(得分:0)
$("#Email").validationEngine('validateField',$("#Email"))