在AJAX调用向DB发送信息之前,它不会进行验证。如何首先激活验证?
$(document).ready(function() {
$("#signup").validationEngine('attach', {
promptPosition : "centerRight",
scroll : false,
ajaxFormValidation: true,
onBeforeAjaxFormValidation: beforeCall,
onAjaxFormComplete: ajaxValidationCallback,
});
});
$("#submit").click(function() {
var url = "insertintoDB.php"; // the script where you handle the form input.
$.ajax({
type: "POST",
url: url,
data: $("#signupform").serialize(), // serializes the form's elements.
success: function(data)
{
alert(data); // show response from the php script.
}
});
return false; // avoid to execute the actual submit of the form.
});
它确实指向insertintoDB.php,但不验证以下表单。
<form class="form-horizontal" id="signup" name="signup" method="post" action="insertDB.php">
<div class="control-group">
<label class="control-label" for="inputSurname">Name</label>
<div class="controls"><input type="text" id="inputSurname" name="inputSurname" placeholder="Surname" class="validate[required]" /></div>
</div>
<button type="submit" id="submit" class="btn btn-success">Sign Up!</button>
</form>
如何在传入PHP进行数据插入之前先进行验证?
答案 0 :(得分:1)
您可以使用这些验证开源库验证变量:
jQuery-Form-Validator
Lightweight form validation for jQuery or Zepto.js
jQuery-Validation-Engine
等等......
但我强烈建议您先使用服务器端验证 任何数据库操作,以防止SQL注入和XSS攻击。
答案 1 :(得分:0)
使用jQuery Validator进行表单验证,其模式如下:
$('form').validate({
invalidHandler: function(event, validator) {
// Handle the invalid case.
},
submitHandler: function(form) {
// do stuff on your valid form.
// Then call form submit.
form.submit();
}
});
验证程序允许您为各种条件设置规则和错误消息,但它会自动检测缺少的字段,其中包含“required”属性和其他基于字段类型的情况。例如。网址 - 它需要一个有效的网址等。
服务器端验证很重要,但jQuery验证器允许您在仍然受到用户注意的情况下捕获许多内容,并且可以轻松修复。
见这里:jQuery Validator