我尝试在提交表单之前禁用所有具有样式display:none
的元素。
如果有e.preventDefault()
,表单根本没有提交,如果没有e.preventDefault()
,则会发生无限循环。
$(document).on('submit', 'form', function (e) {
e.preventDefault();
console.log($(':input:hidden').length);
$('#reservation-form > :input:hidden').attr("disabled", true);
$('#reservation-form').unbind('submit').submit();
});
您是否知道如何在提交此表单之前禁用所有display:none
字段?
答案 0 :(得分:2)
您将事件绑定到document
级别,因此要取消绑定submit
,您也应该在document
级别解除绑定。
据说,最简单的方法是调用DOM本机submit()
事件:
$('#reservation-form')[0].submit();
BTW,对于布尔属性,更好的是使用.prop()
,即使在你的情况下,它也没有改变:
$('#reservation-form > :input:hidden').prop("disabled", true);
答案 1 :(得分:2)
您不必运行$('#reservation-form').unbind('submit').submit();
删除e.preventDefault();
调用并在函数末尾返回true:
$(document).on('submit', 'form', function (e) {
console.log($(':input:hidden').length);
$('#reservation-form > :input:hidden').attr("disabled", true);
return true;
});
这可以为您提供所需的行为,而无需绑定和取消绑定事件。
答案 2 :(得分:0)