简历表格提交后阿贾克斯$电话 [英] Resume form submission after $.ajax call

查看:130
本文介绍了简历表格提交后阿贾克斯$电话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎样才能恢复jQuery的AJAX调用后/停止表单提交?
我已经MVC应用程序,我打电话通过 JSON 的行动,我想停止表单提交,如果结果出来虚假和恢复,如果结果实现了。

jQuery的:

  $(#formElem)。递交(函数(五){
        亦即preventDefault();
        $阿贾克斯({
            网址:'@ Url.Action(检查,TimeRanges)',
            键入:GET,
            数据:{startRange:$('#SelectedStartTimeRange)VAL(),endRange:$('#SelectedEndTimeRange)VAL()},
            aync:假的,
            数据类型:JSON,
            成功:功能(数据){
                如果(数据== FALSE){
                    $(#rangeexist)HTML(错误)。
                    返回false;
                }其他{
                    返回true;
                }
            }
        });
    });

动作

 公共JsonResult检查(字符串startRange,串endRange)
{
    VAR的结果=假;
    如果(String.IsNullOrEmpty(startRange)及!&安培;!String.IsNullOrEmpty(endRange))
    {
        时间跨度spanStart;
        TimeSpan.TryParse(startRange,出spanStart);        时间跨度spanEnd;
        TimeSpan.TryParse(endRange,出spanEnd);        变种timeRangExisted = _repo.All()其中(x => x.TimeFrom.Equals(spanStart)及&放大器; x.TimeTo.Equals(spanEnd))。了ToList();
        如果(!timeRangExisted.Any())
            结果=真;
    }    返回JSON(结果,JsonRequestBehavior.AllowGet);
}


解决方案

  VAR ajaxSent = FALSE;
$(#formElem)。递交(函数(五){
    如果(!ajaxSent)
     亦即preventDefault();
    $阿贾克斯({
        网址:'@ Url.Action(检查,TimeRanges)',
        键入:GET,
        数据:{startRange:$('#SelectedStartTimeRange)VAL(),endRange:$('#SelectedEndTimeRange)VAL()},
        aync:假的,
        数据类型:JSON,
        成功:功能(数据){
            如果(数据== FALSE){
                $(#rangeexist)HTML(错误)。
                ajaxSent = TRUE;
                $(#formElem)提交()。 //类似的东西....
                返回false;
            }其他{
                返回true;
            }
        }
    });
});

How can I resume/stop form submission after jQuery ajax call? I have MVC application, I'm calling an action by json, I want to stop form submission if result came false and to resume if result came true.

Jquery:

   $("#formElem").submit(function (e) {
        e.preventDefault();
        $.ajax({
            url: '@Url.Action("Check", "TimeRanges")',
            type: "GET",
            data: {startRange: $('#SelectedStartTimeRange').val() , endRange: $('#SelectedEndTimeRange').val()},
            aync: false,
            dataType: 'json',
            success: function (data) {
                if(data == false) {
                    $("#rangeexist").html('Error');
                    return false;
                } else {
                    return true;
                }
            }
        });
    });

Action

public JsonResult Check(string startRange, string endRange)
{
    var result = false;
    if (!String.IsNullOrEmpty(startRange) && !String.IsNullOrEmpty(endRange))
    {
        TimeSpan spanStart;
        TimeSpan.TryParse(startRange, out spanStart);

        TimeSpan spanEnd;
        TimeSpan.TryParse(endRange, out spanEnd);

        var timeRangExisted = _repo.All().Where(x => x.TimeFrom.Equals(spanStart) && x.TimeTo.Equals(spanEnd)).ToList();
        if (!timeRangExisted.Any())
            result = true;
    }

    return Json(result, JsonRequestBehavior.AllowGet);
}

解决方案

var ajaxSent = false;
$("#formElem").submit(function (e) {
    if ( !ajaxSent )
     e.preventDefault();
    $.ajax({
        url: '@Url.Action("Check", "TimeRanges")',
        type: "GET",
        data: {startRange: $('#SelectedStartTimeRange').val() , endRange: $('#SelectedEndTimeRange').val()},
        aync: false,
        dataType: 'json',
        success: function (data) {
            if(data == false) {
                $("#rangeexist").html('Error');
                ajaxSent = true;
                $("#formElem").submit(); // something like that ....
                return false;
            } else {
                return true;
            }
        }
    });
});

这篇关于简历表格提交后阿贾克斯$电话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆