Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当javascript返回false时如何使onclick触发_Javascript_C#_Asp.net - Fatal编程技术网

当javascript返回false时如何使onclick触发

当javascript返回false时如何使onclick触发,javascript,c#,asp.net,Javascript,C#,Asp.net,当javascript返回false时,onclick不起作用。我需要javascript返回false来设置按钮的动画。如果我返回true,则onClick工作,但动画不工作。我已经尝试过使用SubmitBehaviour进行PostBack和SubmitBehaviour,但似乎没有任何效果。如果您能帮我解决这个问题,我们将不胜感激 asp按钮的代码: <asp:LinkButton id="btn_salaries" onClientClick="return fncsave();"

当javascript返回false时,onclick不起作用。我需要javascript返回false来设置按钮的动画。如果我返回true,则onClick工作,但动画不工作。我已经尝试过使用SubmitBehaviour进行PostBack和SubmitBehaviour,但似乎没有任何效果。如果您能帮我解决这个问题,我们将不胜感激

asp按钮的代码:

<asp:LinkButton id="btn_salaries" onClientClick="return fncsave();" OnClick="btn_clicked" UseSubmitBehavior="false" runat="server" type="button" class="list-group-item" Text="getCharitySalaries"/>
更新:

我正在用ajax制作动画,但我不知道是否正确,因为它不执行动画

下面是我的代码:

function fncsave(){
    alert("dsfdsf");
    $(document).ready(function(){
        $(document).ajaxStart(function(){
            $("#list_of_btns").animate({left: '-290px'});
        }
    }
    return true;
}

您不应该在click事件处理程序上检查document ready事件。此外,当有人单击链接时,您正在调用fncsave函数,但在该函数中,您正在订阅id标记列表上的另一个事件(单击)。 如果我理解正确,您应该这样做:

function fncsave(){
        $("#list_of_btns").animate({left: '-290px'});
        return false;
    }
正如注释所示,“returnfalse”意味着它不会继续正常的事件处理流程,也就是提交表单

如果返回true,则提交表单。这意味着表单数据被发送到服务器并执行C#代码。然后,如果完全重新加载(从头开始),则返回页面。在这种情况下,动画没有任何意义,您需要AJAX在C代码运行时执行动画。请参阅关于AJAX()的本教程。

尝试这样做

 function fncsave(){
        $("#list").click(function(){
             $("#list_of_btns").animate({left: '-290px'},900,function(){
                    return false;
               });
          });
        }

我有一个“动画”变量,默认值为false。如果单击按钮,请检查动画是否为false,'preventDefault()'取消提交,播放动画,'setTimeOut()'将在3000ms后启动该功能,将动画指定为true,并触发按钮上的'click'。这一次,动画是真的,它将数据发布到服务器

<asp:Button ID="btn_salaries" OnClick="Button_Click" runat="server" type="button" Text="getCharitySalaries" />
<br />
<script type="text/javascript">
    $(document).ready(function (e) {

        var animated = false;
        $('#' + '<% = btn_salaries.ClientID %>').click(function (ev) {
            if (!animated) {
                ev.preventDefault();
                $(this).animate({ left: '-290px' });
                setTimeout(function () {
                    animated = true;
                    $('#' + '<% = btn_salaries.ClientID %>').trigger('click');
                }, 3000);
            }
        });
    });
</script>


$(文档).ready(函数(e){ var=false; $('#'+'')。单击(函数(ev){ 如果(!已设置动画){ ev.preventDefault(); $(this.animate({left:'-290px'}); setTimeout(函数(){ 动画=真; $('#'+'').trigger('click'); }, 3000); } }); });

希望对您有所帮助。

这应该可以满足您的需要

function fncsave(){
    $("#list_of_btns").animate({left: '-290px'},900,function(){
        // Do __doPostBack here
    });
    return false;
}

它将延迟执行回发,直到动画完成。另一种方法是使用“更新”面板,以避免动画后面的发帖出现闪烁。

这是有道理的,但OnClick仍然不起作用。我不知道如何使它工作。OnClick是服务器端的一个事件处理程序,它只在JS函数返回true(do post back)时执行。如果需要执行JS代码和C#代码,则返回true而不是false。考虑到页面将被提交。那么我是在fncsave()中写u doPostBack()还是在OnClientClick()中写?这是因为当您进行回发(在JS代码中返回true)时,表单被发送到服务器,C代码被执行,新页面被返回到客户端(从头开始重新加载页面)。你不想这样,你想在C#action运行时显示动画,对吗?在这种情况下,您需要使用AJAX。也就是说,您的JS代码将调用异步C#方法。我更新了问题中的代码,使用ajax,但动画不再工作。不幸的是,由于其仍然返回false,因此不会触发OnClick事件。因此,您可以将其更改为true如果我将其更改为true,则动画不工作尝试使用MVC.NET并获得更好的耦合客户端/服务器行为。相比之下,在ASPX中,客户机和服务器实际上是两个不同的世界。
function fncsave(){
    $("#list_of_btns").animate({left: '-290px'},900,function(){
        // Do __doPostBack here
    });
    return false;
}