在提交表单

时间:2018-06-08 08:25:14

标签: javascript jquery typescript submit

我已在表单上提交功能

这是功能代码

 export function submit(): void {
    $("#sequence").val(Number($("#sequence").val()) + 1);
    $("#search_results").addClass("overlay");
    $("#filter_form").submit();
  }

在onUpdated方法中调用此函数

这是代码

 // This is what triggers when we anything has been changed.
  function onUpdated(): void {
    if (!skipSubmit) {
      submit();
    }
  }

我有时会从后端获得500个代码请求,并且需要在其上显示示例警告。

我需要从请求中获取500状态。

我想知道如何在此代码中执行此操作,因为我只有$("#filter_form")。submit();?

感谢帮助

2 个答案:

答案 0 :(得分:1)

你可以这样做:

$('#filter_form').submit(function(event) {

    //serialize the data in the form in JSON
    var formData = $("#filter_form").serializeObject();

    $.ajax({
        type        : 'POST',
        url         : //your url
        data        : formData,
        dataType    : 'json', 
        encode          : true
    }).done(function(data) {
       //here it comes if there are no error in the server
    }).fail(function(data){
       //when it fails (so error 500)
       //handle your error
    )};
    event.preventDefault();

}

答案 1 :(得分:1)

您正在同步发布表单。浏览器始终显示同步请求的响应。您有2个选项来显示用户友好的错误消息:

1-服务器生成一个用户友好的html页面并将其返回给客户端(您应该在服务器上处理错误并生成错误页面)

2-异步发送请求(Ajax)并在客户端捕获错误并向用户显示正确的消息:

$.ajax(“/url-to-post”, {
   data: $("#filter_form").serialize(), // serialize form data
   success: function(){
      //... 
   },

   error: function(jqXHR, textStatus, error){
      //...
   },

});