Javascript onclick事件:返回true,但是按钮没有被执行?

时间:2015-01-10 12:34:00

标签: javascript jquery asp.net vb.net webforms

编辑:我的具体问题是关于“返回CheckStatus(this,event,9000)”。 CheckStatus函数返回true,但由于某种原因,OnClick(服务器端)永远不会执行。 从Ajax请求中读取正确的值没有问题。这已经过测试并相应地起作用。

我在遗留应用程序上使用webforms。我正在尝试使用ImageButton对服务器进行快速检查。满足该条件时,用户会收到确认对话框。当他点击“是”(或“确定”)时,表格会被发布,否则不会采取任何行动。

这应该很简单,但是下面的代码似乎有些问题,因为按钮从不在服务器上执行OnClick事件。

ASP.NET imagebutton:

<asp:ImageButton ID="btnBook" runat="server" CommandName="book" ImageUrl="~/modulas/images/icon_forward.gif" OnClientClick=<%# "return CheckStatus(this, event, " & Eval("vacationid") & ");"%> />

在浏览器中会出现这种情况:

<input type="image" name="btnBook" id="btnBook" src="images/icon_forward.gif" onclick="return CheckStatus(this, event, 7655);">

运行的javascript函数如下:

function doAjax(myUrl, vacId) {
            var result;

            $.ajax({
                type: "GET",
                async: false,
                url: myUrl + '?vacId=' + vacId,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (ajaxResult) {
                    var resultCode = parseInt(ajaxResult.d);

                    if (resultCode > 0) {
                        result = confirm('Are you sure?');  
                    }      
                },
                error: function (message, message2, message3) {
                    alert("error!");
                    result = false;
                }
            });

            return result;
        }

        function CheckStatus(obj, event, vacId) {
            event.preventDefault();

            var myUrl = "/GetVacationStatus";

            return doAjax(myUrl, vacId);
        }

在服务器上,OnClick的处理方式如下:

(按钮位于gridview内)

Protected Sub grdListing_RowDataBound1(sender As Object, e As GridViewRowEventArgs) Handles grdListing.RowDataBound
    If e.CommandName = "book" then
         Book()
    End If
End Sub 

Private Function Book() As Boolean
    'Do something
End Function

我省略了真正的商业逻辑。如果我从按钮中删除javascript函数,那么这段代码执行完美,但我还需要javascript代码才能工作

对我来说这应该是非常简单的,但是发生的事情是我在确认对话框中点击“是”,没有任何反应。我在确认对话框中单击“否”,再没有任何反应。而且我知道可能出现什么问题。

有没有人看到这个问题,或者是否有人对我可以尝试的事情有更多想法?

非常感谢

0 个答案:

没有答案
相关问题