我正在尝试将验证插件与Bootstrap
中的表单集成。当我使用以下代码时,出现以下错误:
"未捕获的语法错误: 意外的令牌 (".
我无法弄清楚问题是否出在PHP,Javascript或两者上。这里的 PHP 编码是否正确?
JavaScript:
$(document).ready(function() {
$('#formBasic').formValidation({
framework: 'bootstrap',
fields: {
firstName: {
validators: {
notEmpty: {
message: 'Name is required'
}
}
},
lastName: {
validators: {
notEmpty: {
message: 'The password is required'
}
}
}
}
})
.on('success.form.fv', function(e) {
e.preventDefault();
var $form = $(e.target);
var bv = $form.data('formValidation');
$.post($form.attr('action'), $form.serialize(), function(result) {
error: function () {
alert("There was an error processing this page.");
return false;
},
success: function (output) {
$('#formBasicResults').html(output.responseText);
alert('success');
}
}, 'json');
});
.PHP:
function formBasic(){
$output = 'Output from Form Basic:
';
foreach ($_POST as $key => $value) {
$output .= $key . ': ' . $value . '
';
}
echo $output;
}
if(in_array($_POST['function'], array('formBasic','formAdvanced'))){
$_POST['function']();
}else{
echo 'There was an error processing the form';
}
在声明success
和error
处理程序时,$.post
语法不正确。试试这个:
$.post($form.attr('action'), $form.serialize())
.done(function(result) {
$('#formBasicResults').html(result.responseText);
alert('success');
})
.fail(function() {
alert("There was an error processing this page.");
});
您可以使用$.ajax
自由地将数据类型指定为json
或jsonp
或文本
因此,使用 $.ajax 代替 $.post,您只需要包含的其他内容是 type:post
.
$.ajax({
type: "POST",
url: "some.php",
dataType: "json"
data: { name: "John" },
success:function () { //handle success calls},
error:function () { //handle failure calls}
});
参考: http://api.jquery.com/jquery.ajax/