我有一个带有一个输入字段的页面,它接受输入并将其预先填充到引导模式中的表单中。
<script>
$(function(){
$('#exampleModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
var modal = $(this);
var recipient = document.getElementById("inputName").value;
modal.find('.companypostcode input').val(recipient);
});
});
</script>
使用本教程中所示的相同方式验证表单: https://scotch.io/tutorials/submitting-ajax-forms-the-angularjs-way
但是,一旦填写了表单的其余部分并单击了“提交”,验证会将邮政编码字段标记为未填写。
我可以单击该字段并输入一个空格,它会正常工作,但我不必这样做。
处理 PHP 检查空输入,如下所示:
if (empty($_POST['name']))
$errors['name'] = 'Name is required.';
if (empty($_POST['CompanyName']))
$errors['CompanyName'] = 'Company name is required.';
if (empty($_POST['PostCode']))
$errors['PostCode'] = 'Company postcode is required.';
if (empty($_POST['EmailAddress']))
$errors['EmailAddress'] = 'Email address is required.';
if (empty($_POST['TelephoneNumber']))
$errors['TelephoneNumber'] = 'Telephone number is required.';
任何帮助将不胜感激。
最佳答案
如果 Bootstrap 模式中的表单使用 AngularJs 进行验证,那么您必须通知 AngularJs 模型已更改。否则,您只更新了输入字段中的值,而没有更新底层模型中的值。
但没有实际代码可供查看,这只是提问
您很可能需要调用$scope.$apply()
像这样
<script>
$(function(){
$('#exampleModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
var modal = $(this);
var recipient = document.getElementById("inputName").value;
modal.find('.companypostcode input').val(recipient);
//TODO: Notify angularJs about changed value
$scope.$apply();
});
});
</script>
关于php - AngularJS 表单验证 - 跳过预填充的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429815/