无论if-else复选框如何,提示窗口都会提交表单



我已经用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;
}

最新更新