проверка формы перед запуском события прямого клика

У меня есть кнопка, я хочу сформировать проверку (на стороне клиента) перед запуском события прямого щелчка. Я пробовал много способов, но потерпел неудачу.

** Я уже установил подобное текстовое поле.

 <ext:TextField ID="Ad" runat="server" FieldLabel="Dem ad" Flex="1" AllowBlank="false" CausesValidation="true"> </ext:TextField>

но по-прежнему стрелять прямо даже до проверки текстового поля


<ext:Button ID="Button1" runat="server" Text="save" Icon="Disk">
                                  <DirectEvents>

                                    <Click OnEvent="Dem">
                                        <Confirmation ConfirmRequest="true"  Title="Title" Message="are u sure you want to update..." />

                                    </Click>

                                </DirectEvents>


                            </ext:Button>

person sakir    schedule 08.06.2013    source источник


Ответы (1)


Есть несколько вариантов.

  1. Вы можете вернуть false из обработчика Before DirectEvent или из того же прослушивателя.

    protected void Submit(object sender, DirectEventArgs e) { X.Msg.Alert("Submit", "Submitted").Show(); }

    Пример Ext.NET v2

        <ext:FormPanel ID="FormPanel1" runat="server">
            <Items>
                <ext:TextField runat="server" AllowBlank="false" />
            </Items>
        </ext:FormPanel>
    
        <ext:Button runat="server" Text="Submit">
            <%--<Listeners>
                <Click Handler="return false;" /> it has the same effect as returning false from a DirectEvent's Before.
            </Listeners>--%>
            <DirectEvents>
                <Click OnEvent="Submit" Before="return App.FormPanel1.isValid();" />
            </DirectEvents>
        </ext:Button>
    </form>
    

  2. Другой подход заключается в использовании FormBind. Он автоматически отключает компонент, если FormPanel недействителен. Компонент должен принадлежать FormPanel.

    protected void Submit(object sender, DirectEventArgs e) { X.Msg.Alert("Submit", "Submitted").Show(); }

    Пример Ext.NET v2

        <ext:FormPanel ID="FormPanel1" runat="server" Width="200">
            <Items>
                <ext:TextField runat="server" AllowBlank="false" />
            </Items>
            <Buttons>
                <ext:Button runat="server" Text="Submit" FormBind="true">
                    <DirectEvents>
                        <Click OnEvent="Submit" />
                    </DirectEvents>
                </ext:Button>
            </Buttons>
        </ext:FormPanel>
    </form>
    

  3. Вы можете прослушать ValidityChange, чтобы применить некоторые пользовательские действия.

person Daniil Veriga    schedule 10.06.2013