estoy usando el Formulario Ajax.Begin en mi MVC 3 aplicación + RazorAjax.BeginForm con OnBegin prevenir la acción que se llama
using (Ajax.BeginForm("ActionName", "ControllerName", new AjaxOptions { OnBegin = "ValidateDateFunction('" + @abc.xyz + "')", HttpMethod = "POST", UpdateTargetId = "savebutton" }))
{
<input type="submit" value="Save" />
}
A continuación se muestra cómo mi método onBegin se parece. Estoy pasando un valor a este método, puedo obtener una alerta adecuada.
function ValidateDateFunction(id) {
alert(id);
if(some-ConditionUsing-formId)
{
return false;
}
return true;
}
Ahora, con esto quiero que si mi condición falla, no se debe llamar a la acción. Pero aquí en mi caso en ambas condiciones se llama mi acción.
Por favor ayuda en esto.
A continuación es mi método de validación real
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;
}
encontrado! sólo tenía que ajustar mi propiedad OnBegin a OnBegin = "volver ValidateDateFunction ('" + @ abc.xyz + "')" Enlace hice referencia http://stackoverflow.com/questions/8056968/asp -net-mvc-3-0-ajax-actionlink-onbeign-function-true-the-execute-the-action – Yasser
¿Qué quieres pasarle? – HaBo
lo encontró http://stackoverflow.com/questions/10024135/ajax-beginform-with-onbegin-prevent-action-to-be-called/10039566#10039566 – Yasser