与OnBegin预防行动Ajax.BeginForm被称为(Ajax.BeginForm with

2019-06-23 10:28发布

我在我的MVC 3 +剃刀应用程序中使用Ajax.Begin表

    using (Ajax.BeginForm("ActionName", "ControllerName", new AjaxOptions { OnBegin = "ValidateDateFunction('" + @abc.xyz + "')", HttpMethod = "POST", UpdateTargetId = "savebutton" }))
   {
         <input type="submit" value="Save" />
   }

下面是我onBegin方法是如何的模样。 我传递一个值,这个方法,我能够得到适当的警报。

    function ValidateDateFunction(id) {
        alert(id);
        if(some-ConditionUsing-formId)
        {
            return false;
        }

        return true;           
    }

现在用这个,我想,如果后来我条件不满足的行动不应该被调用。 但是在这里我的情况下,这两个条件我的动作叫。

请对此有所帮助。

下面是我的实际验证方法

        function ValidateDateFunction(fId) {

        var first = document.getElementById("startDate" + fId);
        var second = document.getElementById("endDate" + fId);

        if (first.value == "" && second.value != "") {
            alert("Please select both dates");
            return false;
        }
        else if (first.value != "" && second.value == "") {
            alert("Please select both dates");
            return false;
        }

        var startDateVal = new Date(first.value);
        var endDateVal = new Date(second.value);

        if (startDateVal.getTime() > endDateVal.getTime()) {
            alert("Error ! The start date is after the end date!");
            return false;
        }
        alert('should not reach here');
        return true;

    }

Answer 1:

找到了 !

只是要我OnBegin性能调整到

OnBegin = "return ValidateDateFunction('" + @abc.xyz + "')"

链接我提到ASP.Net MVC 3.0 Ajax.ActionLink Onbegin功能的真正执行动作?



文章来源: Ajax.BeginForm with OnBegin prevent action to be called