我有一个Jquery的MVC应用程序;我有一个带有一些数据的gridview和一个指向控制器新动作的元素。 现在我需要在执行操作之前进行一些验证。 我的代码是这样的:
$('#datosCartolaSeguro a').click(function(e) {
var datosProductoSeleccionado = $(this).parent().find('input').val();
$.post(pathSite + 'PorSegurosCartola/ProductoTieneCartola',
{
strDatosProducto: datosProductoSeleccionado
},
function(resp) {
if (resp == 'False') {
popupActual = '#popupProdNoTieneCartola';
centrarPopup();
cargarPopup();
}
else {
mostrarVentanaAdvertencia();
return true;
}
}
);
});
调用方法之后:cargarPopup()我想避免执行动作链接的点击。我尝试了一个简单的返回false,但页面做了回发。我也试过e.preventDefault()函数;这是在这个论坛的其他解决方案中发布的,但它不起作用。我需要避免单击ActionLink但没有回发。 感谢。
答案 0 :(得分:3)
在点击功能结束时添加返回false:
$('#datosCartolaSeguro a').click(function(e) {
var datosProductoSeleccionado = $(this).parent().find('input').val();
$.post(pathSite + 'PorSegurosCartola/ProductoTieneCartola',
{
strDatosProducto: datosProductoSeleccionado
},
function(resp) {
if (resp == 'False') {
popupActual = '#popupProdNoTieneCartola';
centrarPopup();
cargarPopup();
}
else {
mostrarVentanaAdvertencia();
return true;
}
}
);
return false;
});
答案 1 :(得分:1)
你需要在等待帖子的响应时停止发生,所以你应该添加返回false;或者在电话会议之后的e.preventDefault()。
$('#datosCartolaSeguro a').click(function(e)
{
var datosProductoSeleccionado = $(this).parent().find('input').val();
$.post(pathSite + 'PorSegurosCartola/ProductoTieneCartola',
{
strDatosProducto: datosProductoSeleccionado
},
function(resp) {
if (resp == 'False') {
popupActual = '#popupProdNoTieneCartola';
centrarPopup();
cargarPopup();
}
else {
mostrarVentanaAdvertencia();
window.location=$('#datosCartolaSeguro a').href;
}
}
);
e.preventDefault();
};