Javascript,在提交时启用禁用字段无效

Javascript, enabling disabled fields on submit isn't working

$(function() {
    $("#booking-form").submit(function() {
        alert("hi");
        $("#Booking_clientPackagedService_id").prop("disabled", false);
    });
});

最初,我禁用了 #Booking_clientPackagedService_id

所以我实现了上面的代码,在提交表单时重新启用它。

但是我发现它没有启用。 alert("hi"); 有效但不适用于 .prop()

是语法本身的问题吗?或者还有其他方法吗?

请指教谢谢

试试这个

$('#Booking_clientPackagedService_id').removeAttr("disabled"); 

使用event.preventDefault();默认的事件动作是不会被触发的。

   $("#booking-form").submit(function(event) {
            event.preventDefault();
            $("#Booking_clientPackagedService_id").removeAttr('disabled');
        });

使用event.preventDefault(); 阻止要提交 的表单。

如果您想第二次提交,那么您可以验证 class 是否存在并在启用字段后添加它。

$(function() {
    $("#booking-form").submit(function(event) {
        if(!$(this).hasClass('submited'))
        {
            event.preventDefault(); // prevent form to submit
            alert("hi");
            $("#Booking_clientPackagedService_id").attr("disabled", false);
            $(this).toggleClass('submited');
        }
    });
})

检查代码片段以查看工作示例。

$(function() {
    $("#booking-form").submit(function(event) {
        if(!$(this).hasClass('submited'))
        {
            event.preventDefault(); // prevent form to submit
            alert("hi");
            $("#Booking_clientPackagedService_id").attr("disabled", false);
            $(this).toggleClass('submited');
        }
    });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="booking-form">
  <input type="text" id="Booking_clientPackagedService_id" disabled="disabled" />
  <input type="submit" value="Submit" />
</form>

像这样尝试

$("#booking-form").on("submit",function(e) {
        e.preventDefault();
        $("#Booking_clientPackagedService_id").prop("disabled", false);
 });
$(function() {
    $("#booking-form").submit(function() {
        alert("hi");
        $("#Booking_clientPackagedService_id").prop("disabled", false);
        return false;
    });
});

您可以在您的情况下使用 localstorage

var issubmitted = localstorage.getItem('issubmitted') !== undefined && localstorage.getItem('issubmitted') === 'submitted' || false;
$("#Booking_clientPackagedService_id").prop("disabled", issubmitted);

$("#booking-form").submit(function() {
    localstorage.setItem('issubmitted', 'submitted');
    alert("hi");
});