我已经用javascript函数将确认窗口集成到我的Symfony表单中。
这是我的起始表单定义:
{{ form_start(form, {'attr': {'role': 'form', 'id':'editForm'} } ) }}
在javascript中:
$('#editForm').on('submit', function (e) {
e.preventDefault();
validateEditForm();
});
function validateEditForm()
{
var nameInput;
nameInput = prompt('Please input name to confirm edit:');
var name = document.getElementById('edit_name').value;
if (nameInput === name || Number(nameInput) === name) {
$('#editForm').submit();
} else if (nameInput === null || nameInput === "") {
alert('You must enter name to confirm!');
return false;
} else {
alert("Entered name and default name don't match!");
return false;
}
一个案例不起作用。
当我在框中输入正确的名称时,请输入工作区名称以确认编辑:再次出现。然后我再次单击确定,表单即被提交。。我的if-else检查有问题吗?
编辑:尝试在两个独立的函数中进行编辑,并使用e.preventDefault();
,行为相同。
我将validateEditForm方法更改为返回布尔值。在表单提交事件中,validateEditForm方法决定是否提交表单。
$('#editForm').on('submit', function (e) {
if(!validateEditForm()) {
e.preventDefault();
}
});
function validateEditForm()
{
var nameInput;
nameInput = prompt('Please input name to confirm edit:');
var name = document.getElementById('edit_name').value;
if (nameInput === name || Number(nameInput) === name) {
return true;
} else if (nameInput === null || nameInput === "") {
alert('You must enter name to confirm!');
return false;
} else {
alert("Entered name and default name don't match!");
return false;
}