событие on submit формы
Здравствуйте.
Подскажите пожалуйста, как объявить событие on submit. Мне после submit'а нужно некоторые вещи делать. Спасибо. |
Можно так:
<form action="" method="post" onsubmit="alert('отправил!'); return false"> <input type="submit" value="отправить"> </form> Но лучше так: <form name="forma" action="" method="post"> <input type="submit" value="отправить"> </form> <script type="text/javascript"> document.forms['forma'].onsubmit = function(){ alert('отправил!'); return false; }; </script> |
Я использую Ext.FormPanel :)
Не html-форму. |
Ну примерно так
MyForm = Ext.extend(Ext.form.FormPanel, { border : false, frame : true, labelWidth : 120, url : 'url', ,initComponent : function() { var config = { defaultType : 'textfield', defaults : { anchor : '-24', msgTarget : 'side' }, monitorValid : true, autoScroll : true, items : [ ], buttons : [ { text : 'Сохранить', iconCls : 'icon-tick', formBind : true, scope : this, handler : this.submit }, { text : 'Отмена', iconCls : 'icon-cross', scope : this, handler : function() { this.fireEvent('chancel'); } } ] }; // apply config Ext.apply(this, Ext.apply(this.initialConfig, config)); // call parent MyForm.superclass.initComponent.apply(this, arguments); // add custom events this.addEvents('saved'); } ,onRender : function() { // call parent MyForm.superclass.onRender.apply(this, arguments); this.getForm().waitMsgTarget = this.getEl(); } // eo onRender ,submit : function() { this.getForm().submit( { url : this.url, scope : this, success : this.onSuccess, failure : this.onFailure, waitMsg : 'Сохранение данных...' }); } // eo submit ,onSuccess : function(form, action) { var responseObj = Ext.decode(action.response.responseText); // send the new record id this.fireEvent('saved', responseObj); } ,onFailure : function(form, action) { var responseObj = Ext.decode(action.response.responseText); this.showError(action.result.error || responseObj.errormsg); } ,showError : function(msg, title) { title = title || 'Error'; Ext.Msg.show( { title : title, msg : msg, modal : true, icon : Ext.Msg.ERROR, buttons : Ext.Msg.OK }); } }); // eo extend // register xtype Ext.reg('MyForm', MyForm); И далее где угодно MyForm.on('saved', function(responseObj) { // Что делаем }); |
Блин! совсем не то хотел спросить, но ответ тем не менее и в этом коде есть :) спасибо!
|
вот так можно еще парамеры для запроса можно добавить
this.getForm().submit( { url : this.url, params : {param1: value1, param2: value2, ....}, scope : this, success : this.onSuccess, failure : this.onFailure, waitMsg : 'Сохранение данных...' }); |
Вообще можно без submit-а,
просто кнопка и собрать все данные с form-ы. Один раз делал с формой, а сейчас все без формы. Но возможно с формой вариант лучше. |
только вот не пойму что такое scope. но вообще проблема решена. scopeом не воспользовался. не подскажите что это такое?
|
На сколько я знаю, это переменные окружения.
Т.е. например мы вызываем функцию, там откуда мы её вызываем есть различные переменные, вот scope и передаёт эти переменные. Возможно я не прав. Сам никогда ещё не пользовался им. А вообще scope - это область видимости откуда вызываем, вроде так. |
|
Часовой пояс GMT +3, время: 09:35. |