Jquery打破Href点击

时间:2009-12-29 13:46:52

标签: jquery

我有一个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但没有回发。 感谢。

2 个答案:

答案 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();
};