OnClientClick javascript for按钮无效

时间:2014-06-13 05:10:36

标签: javascript asp.net

场景是这样的:我有一个asp.net GridView控件和一个保存按钮。最初我在页面加载时禁用了保存按钮。我想在gridview中的任何下拉列表更改时启用保存按钮。它一直工作到现在为止。

我有一个javascript函数可以向用户询问是否要继续保存,但是此函数没有通过保存按钮触发。

如果我从下拉列表中删除该功能以启用保存按钮,则保存按钮会调用onclientclick功能。否则,它没有。

以下是代码。

<script type="text/javascript">
function Confirm() {
    if (confirm("Are you sure," + " you want to assign the respective factories ?") == true)
       return true;
    else
       return false;
}
function Success() {
    alert('Data has been saved successfully.');
}
function EnableSave() {
    $('#btnSave').prop("disabled", false);
}
}
</script>

<asp:GridView ID="gvReceiptTrans" 
              runat="server" 
              AutoGenerateColumns="false" 
              CssClass="mGrid" 
              PagerStyle-CssClass="pgr" 
              AlternatingRowStyle-CssClass="alt"
              OnRowDataBound="grid_RowDataBound" 
              EmptyDataText="No Data Available">
    <Columns>
        <asp:BoundField HeaderText="RAN" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center"  DataField="receipt_ack_nbr" />
        <asp:BoundField HeaderText="IPN" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" DataField="item_id" />
        <asp:BoundField HeaderText="PO" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" DataField="po_nbr" />
        <asp:BoundField HeaderText="PO Line" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="80px"  ItemStyle-HorizontalAlign="Center" DataField="po_line_nbr" />
        <asp:BoundField HeaderText="Supplier" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Center" DataField="supplier" />
        <asp:BoundField HeaderText="Model" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" DataField="model" />
        <asp:BoundField HeaderText="Description" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Center" DataField="description" />
        <asp:BoundField HeaderText="Qty Delivered" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="110px" ItemStyle-HorizontalAlign="Center" DataField="qty" />
        <asp:TemplateField HeaderText="Factory"    HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="120px">
            <ItemTemplate>
                <asp:DropDownList ID="ddlFactory" runat="server" Width="120px" onchange="return EnableSave();" CssClass="items" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>



<asp:Button ID="btnSave" runat="server" Text="Save" Width="120px" Height="30px" OnClientClick="return Confirm();" OnClick="btnSave_Click" />

要求是先点击保存按钮调用onclientclick()函数,然后再进行主点击事件。

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:2)

更改您的Confirm方法如下,

function Confirm() {
    return confirm("Are you sure," + " you want to assign the respective factories ?");
}

答案 1 :(得分:1)

试试这个

<asp:Button ID="btnSave" runat="server" Text="Save" Width="120px" Height="30px"   OnClientClick="return confirm('Are you certain you want to delete this 
product?');" OnClick="btnSave_Click" />

使用此jquery代码。它工作正常

<asp:DropDownList ID="ddlFactory" runat="server" Width="120px"  CssClass="items" DataSourceID="SqlDataSource1"/>

和你的jquery

<script type="text/javascript">
        $(document).ready(function () {
            $('.items').on('change', function () {
                alert('change');
            });
        });
    </script>

答案 2 :(得分:0)

正如您提到的要求,我已经在最后测试了您的代码。它工作正常。 “onclientclick”正在向我招手。你可以发布完整的aspx代码,以便我们可以看到。

由于

答案 3 :(得分:0)

尝试这个,

         OnClientClick="return confirm();"

答案 4 :(得分:0)

我认为你应该在javascript函数中调用服务器端事件..

供您参考......

http://forums.asp.net/t/1794512.aspx?Call+Server+Side+Event+From+JavaScript