检查Silverstripe表单中的验证错误

时间:2015-01-12 09:37:35

标签: php validation silverstripe

我有一个显示为模态的表单。仅当用户单击相应的链接时才会显示此模式。 表格本身按预期工作。

我遇到的问题只有一个。只要表单无效,RequiredFields Validator就会启动,用户将被定向回来,就是这样。

在这种情况下,我想立即显示模态,但我找不到检查验证错误的方法。

是否有人有同样的问题设法解决它或有人可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我之前做过一个关于boostrap网站的解决方案。我没有替换整个页面,只有模态:

jQuery(function($) {
$('form[data-async]').on('submit', function(event) {
var $form = $(this);
var $target = $($form.attr('data-target'));

$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize(),

success: function(data, status) {
$target.html(data);
}
});

event.preventDefault();
});
}); 

这会将内容替换为实际响应。找到它here

在模板中:

<!-- Bootstrap trigger to open modal -->
<a data-toggle="modal" href="#rating-modal">Write a Review</a>

<div class="hide fade modal" id="rating-modal">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h2>Your Review</h2>
</div>

<div class="modal-body">
<!-- The async form to send and replace the modals content with its response -->
<form class="form-horizontal well" data-async data-target="#rating-modal" action="/some-endpoint" method="POST">
<fieldset>
<!-- form content -->
</fieldset>
</form>
</div>

<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Cancel</a>
</div>
</div> 

如果您有ajax请求或未使用正确的模板回复,请务必使用Director::is_ajax()检查您的php代码。