EasyUI Forum
April 28, 2024, 10:27:55 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Listen to onChange in Form Causes Issues  (Read 907 times)
poeziafree
Jr. Member
**
Posts: 69


View Profile Email
« on: December 29, 2022, 09:14:44 AM »

Hello,

I listen to the onChange event in the Form.

in the onChange event, I validate the form, which moves focus on the first input field.

How can I switch it off? Possibly by setting focusInvalid: false;

I need validation on change because, I enable the save button when the form is valid, otherwise, it is disabled.

See the code:

Code:
forma.dialog({
                                            title: 'შეტყობინების გაგზავნა',
                                            width: 870,
                                            height: 300,
                                            modal: false,
                                            resizable: true,
                                            closeAnimation: 'hide',
                                            minimize: 'animate',
                                            collapsible: true,
                                            minimizable: true,
                                            maximizable: true,
                                            href: false,
                                            bodyCls: 'kk f-column',
                                            toolbar: buildToolbar([{
                                                        id: 'save-btn',
                                                        text: 'შექმნა',
                                                        iconCls: 'icon-save',
                                                        plain: true,
                                                        type: 'linkbutton',
                                                        separator: true,
                                                        disabled: true,
                                                        onClick: function() {
                                                            forma.find('form').submit();
                                                        }
                                                    }, {
                                                        text: 'დახმარება',
                                                        iconCls: 'icon-help',
                                                        plain: true,
                                                        type: 'linkbutton',
                                                        separator: false,
                                                        onClick: function() {
                                                            $.messager.alert('ბილეთის შექმნა: დახმარება', 'ბილეთის შექმნისას დეტალურად მიუთითეთ საკითხის აღწერილობა. გაითვალისწინეთ, ბილეთის დასახელება ხილვადი იქნება მომხმარებლისთვის, ხოლო, აღწერილობა - არა.', 'info');
                                                        }
                                                    }]),
                                            onOpen: function()
                                            {
                                                
                                                forma.find('form').form({
                                                        iframe: false,
                                                        method: 'POST',
                                                        url: '/api-submitCustomerCustomSMS',
                                                        queryParams: {
                                                                    customerId: customer_id,
                                                        },
                                                     onSubmit: function() {
                                                                    $.messager.progress({
                                                                        title: 'მიმდინარეობს მონაცემების შენახვა',
                                                                        msg: 'გთხოვთ, დაელოდოთ...',
                                                                        interval: 0
                                                                    });
        
                                                                    var isValid = forma.find('form').form('validate');
                                                                    if (!isValid) {
                                                                        $.messager.progress('close'); // hide progress bar while the form is invalid
                                                                    }
        
                                                                    return isValid; // return false will stop the form submission
        
                                                        },
                                                        onProgress: function(percent) {
                                                                    var bar = $.messager.progress('bar'); // get the progressbar object
                                                                    bar.progressbar('setValue', percent); // set new progress value
                                                        },
                                                        success: function(data) {
                                                                    $.messager.progress('close'); // hide progress bar while submit successfully
                                                                    
                                                                    try {
                                                                        var data = JSON.parse(data);
                                                                        if (data.success) {
                                                                            $.messager.alert('წარმატებით შესრულდა', data.message);
                                                                            var opts = $(this).form('options');
                                                                    opts.originalData = $(this).serialize();
                                                                    forma.dialog('panel').find('#save-btn').linkbutton('disable');
                                                                    $(this).form('resetDirty');
                                                                        } else if (data.error) {
                                                                            $.messager.alert('შეცდომა', data.message, 'error');
                                                                        }
                                                                    } catch (e) {
                                                                        $.messager.alert('შეცდომა', 'სერვერთან დაკავშირება ვერ ხერხდება.', 'error');
                                                                    }
                                                                    
                                                                    CustomerTabPanel.find('#customer_smsHistory').datagrid('reload');
                                                                    
                                                        },
                                                     onChange: function (target) {
                                                            var isValid = forma.find('form').form('validate');
                                                                    if (!isValid) {
                                                                        forma.dialog('panel').find('#save-btn').linkbutton('disable');
                                                                        
                                                                    }
                                                                    else
                                                                    {
                                                                        forma.dialog('panel').find('#save-btn').linkbutton('enable');
                                                                    }
                                                                    
                                                     }
                                                    });
                                                    
                                                    forma.find('#scheduleTime').textbox('hide');
                                            },
                                            onClose: function() {
                                                $(this).window('destroy').remove();
                                            },
                                        });
« Last Edit: December 29, 2022, 09:17:47 AM by poeziafree » Logged
poeziafree
Jr. Member
**
Posts: 69


View Profile Email
« Reply #1 on: December 29, 2022, 01:28:08 PM »

I believe, it would be better to be able to validate a form both with focus and without focus.

E.g.

1. $("#form").form('validate', 'focus'); ////// focuses on invalid fields

2. 1. $("#form").form('validate', 'Nofocus'); ///// does not focus on invalid fields
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!