2013-06-26 6 views
1

У меня есть 11 полей текста в моей форме поиска. Я хочу, чтобы пользователь выбирал атрибуты и оставил пустой. Я хотел бы отключить пустые текстовые поля после нажатия кнопки «Отправить». Поскольку пустые поля отправляют пустую строку в мою службу WFS. Можно ли это сделать?Отключить пустое текстовое поле до отправки

Также я хочу уведомить пользователя, если не заполнил ни одно поле.

Заранее спасибо

formPanel = new GeoExt.form.FormPanel({ 
    ref: "formPanel", 
    title:"Wyszukiwarka", 

    collapsible: true, 
    width: 150, 

    region: "west", 
    protocol: protocol, 
    buttons:[ 
    {text: 'Czyść', 
    width: 60, 
handler: function(){ 
formPanel.getForm().reset(); 
}}, 
    { 
    text: "Szukaj", 
     width: 70, 
    handler: function() { 
     formPanel.getForm().search(); 
    }, 
    //scope: formPanel 
}], 
    items: [{ 
     xtype: "numberfield", 
     name: "trans_id__eq", 
      cls : 'myCls', 
      emptyText:"", 
     value: "", 
     submitEmptyText: false, 
     //fieldLabel: "ID", 
     //disabled: true, 

    }, 

    { 
     xtype: "textfield", 
     name: "dokument__eq", 
     // emptyText:"Dokument", 
      cls : 'myCls', 
     value: "", 
     disabled: true, 
     // fieldLabel: "nabywca", 
      //allowBlank: false 

    }, 
    { 
     xtype: "textfield", 
     name: "data_transakcji__eq", 
      cls : 'myCls', 
      //emptyText:"Data Transakcji", 
     value: "", 
     //fieldLabel: "ID", 
     disabled: true, 

    }, 
    { 
     xtype: "textfield", 
     name: "typ_nier__eq", 
      cls : 'myCls', 
      // emptyText:"Typ nieruchomości", 
     value: "", 
     //fieldLabel: "ID", 
     disabled: true, 

    }, 
    { 
     xtype: "textfield", 
     name: "cena_tran__eq", 
      cls : 'myCls', 
      // emptyText:"Cena transakcji", 
     value: "", 
     //fieldLabel: "ID", 
     disabled: true, 

    }, 
    { 
     xtype: "textfield", 
     name: "cena_1m2_dlk__eq", 
      cls : 'myCls', 
      //emptyText:"Cena 1m2", 
     value: "", 
     //fieldLabel: "ID", 
     disabled: true, 

    }, 
    { 
     xtype: "textfield", 
     name: "pow_m2__eq", 
      cls : 'myCls', 
      //emptyText:"Powierzchnia", 
     value: "", 
     //fieldLabel: "ID", 
     disabled: true, 

    }, 
    { 
     xtype: "textfield", 
     name: "sprzedawca__eq", 
      cls : 'myCls', 
      // emptyText:"Sprzedawca", 
     value: "", 
     //fieldLabel: "ID", 
     disabled: true, 

    }, 
    { 
     xtype: "textfield", 
     name: "nabywca__eq", 
      cls : 'myCls', 
      // emptyText:"Nabywca", 
     value: "", 
     //fieldLabel: "ID", 
    disabled: true, 

    }, 
    { 
     xtype: "textfield", 
     name: "wspx__eq", 
      cls : 'myCls', 
      // emptyText:"WspX", 
     value: "", 
     //fieldLabel: "ID", 
     disabled: true, 

    }, 
     { 
     xtype: "textfield", 
     name: "wspy__eq", 
      cls : 'myCls', 
      // emptyText:"WspY", 
     value: "", 
     //fieldLabel: "ID", 
     disabled: true, 

    } 



    ], 
    listeners: { 
     actioncomplete: function(form, action) { 
     // this listener triggers when the search request 
     // is complete, the OpenLayers.Protocol.Response 
     // resulting from the request is available 
     // through "action.response" 
      features = action.response.features; 
      app.featureGrid.store.loadData(features); //załadowanie zwróconego wyniku wyszukiwania do "app.featureGrid.store" 
      vm=app.mapPanel.map.getLayersByName("Wynik wyszukiwania"); 
      if(vm.length==0){ 
       vecLayer = new OpenLayers.Layer.Vector("Wynik wyszukiwania"); 
       app.mapPanel.map.addLayer(vecLayer); 
       app.featureGrid.store.bind(vecLayer); 
       app.featureGrid.getSelectionModel().bind(vecLayer); 
      //app.featureGrid.getSelectionModel().bind(vectorLayer); 
     } 
    } 
    } 




}) 


    ); 
+3

Почему вы не просто фильтровать пустые поля Сервер- боковая сторона ? Что делать, если пользователь отключает или не имеет javascript? –

+1

@Bartdude Как можно надеяться запустить приложение ExtJS без javascript? –

+0

@ChrisFarmer: У вас там есть точка ;-) Но если пустые поля могут быть проблемой, в любом случае следует заботиться о том, чтобы все значения не были пустыми. –

ответ

0

Вы можете использовать свойство поля в submitValue (логического), чтобы предотвратить его от представления его значения на сервер.

Вы можете установить, что в качестве default для всех полей на форме, но затем изменить submitValue истинное значение, если пользователь changes значение поля, и это не пустые