簡體   English   中英

使用Java驗證先單擊一個按鈕

[英]Validate one button is clicked before another with Javascript

這是在ASP.NET中。 我們使用的是ExtJS前端,並且擁有自己的VB.NET控件來制作所有Ext表單和內容。 但是,我希望可以使用純JavaScript完成。 頁面上已經存在一些Java腳本,用於單擊“測試連接”按鈕並處理結果。

但是,我需要在屏幕上進行驗證以確保用戶在保存屏幕之前測試連接。 (在點擊“保存”按鈕之前,先按下測試按鈕)-他們每次訪問屏幕的時間。

這是頁面的代碼:

<%@ Page Language="VB" Inherits="Core.Web.EditBaseView" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
        function testConnection() {

            Global.mask('Testing Connection...');
            KBBConnectorController.TestConnection(function(result) { testConnectionCallback(result) });
        }

        function testConnectionCallback(result) {
            Global.unmask();
            if (result.Data.Result) {
                Global.alert("Connection to KBB Successful.");
            }
            else {
                Global.alertError(result.Data.Messages[0].Text, result.Data.ExceptionId);
            }
        }

        function Validate() {

        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div style="display:none">
        <%  =Html.DropDownList("ddlMarketValues", TryCast(Model.MarketValues, SelectList))%>
    </div>
    <div>
        <%
            Using KBBForm As New WebControls.Forms.Form
                With KBBForm
                    .OnValidate = "Validate"
                    .ID = "KBB"
                    .ItemName = "connector"
                    With .Toolbar
                        .UseDefaultButtons = False
                        .AddButton(Forms.FormToolbar.ButtonType.Save)
                        .AddButton(Forms.FormToolbar.ButtonType.Cancel)
                        .AddButton("Test Connection", "testConnection", "icon-button-testconnection", , "Test connectione")
                    End With

                    With .CenterRegion
                        .Id = "centerRegion"
                        With .AddFieldSet("Activate Service")
                            .Id = "activate"
                            .LabelWidth = 0
                            Dim cb As New Forms.Control("IsActive", "", "", Model.IsActive, Forms.Control.ControlType.CheckBox)
                            cb.BoxLabel = "Activate Service"
                            .AddControl(cb)
                        End With

                        With .AddFieldSet("Connection Parameters")
                            .Id = "params"
                            .LabelWidth = 150
                            .AddControl(New Forms.Control("UserName", "", "User Name", Model.UserName, Forms.Control.ControlType.TextField))
                            .AddControl(New Forms.Control("Password", "", "Password", Model.Password, Forms.Control.ControlType.Password))
                            .AddControl(New Forms.Control("LoginUrl", "", "URL", Model.LoginUrl))
                            With .AddControl(New Forms.Control("ddlMarketValues", "", "Market Value", , Forms.Control.ControlType.ComboBox))
                                .Id = "ddlMarketValues"
                            End With
                        End With
                    End With
                    Response.Write(.ToString)
                End With
            End Using
            %>    
    </div>
    </form>
</body>
</html>

如您所見,我在其中放置了一個OnValidate函數,但它是空白的,並且您也可以看到它也與Form綁定在一​​起。 我嘗試鬼混,但是我只能放一些東西,每次單擊“保存”時都要求我進行測試,並且不知道是否已經測試過。

有什么幫助嗎? 提前謝謝。

-斯科特

為什么不只是隱藏保存按鈕,直到按下測試連接並且連接可以工作?

嗯,如果我確實正確理解您的話,這應該可以工作。

  1. 在處理connection test結果的代碼中,設置一個標志,指示連接已經過測試。
  2. 在“ Save按鈕的處理程序中,檢查該標志,如果未設置該標志,則顯示某種消息,而不是實際執行保存操作。

您的標志可以是全局變量,該變量最初設置為false這樣,每次訪問該頁面時,都將要求用戶運行測試。

至於您將如何覆蓋/攔截“保存”按鈕處理程序……呃……猜想您必須為此擴展VB內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM