2013-07-27 9 views
7

Mam panel formularz w http://jsfiddle.net/7CLWy/ tutaj jest mój ważny kodExtJS 4 - Jak błąd zmiana domyślnego wiadomość w polu

items: [{ 
    xtype: 'textfield', 
    fieldLabel: 'First Name', 
    allowBlank: false, 
    msgTarget: 'under', 
    name: 'firstName' 
}, { 
    xtype: 'datefield', 
    allowBlank: false, 
    fieldLabel: 'Start date', 
    msgTarget: 'under' 
}], 

Chcę zmienić domyślne błąd wiadomości w polu

enter image description here

Jak to zmienić. Dzięki

+0

Czy przeczytałeś dokumenty? Jest tam http://docs.sencha.com/extjs/4.0.7/?mobile=/api/Ext.form.field.Base invalidText –

Odpowiedz

15

Obiekt blankText jest wiadomość walidacji gdy jest wymagane pole i invalidText jest tekst, gdy pole ogólnie nie walidacji. Możesz dodać własne niestandardowe wiadomości do tych właściwości. Podobnie, jeśli zdarzyło Ci się przeprowadzać sprawdzanie poprawności oparte na regex z właściwością regex, możesz użyć pola regexText, aby podać niestandardowy komunikat sprawdzania poprawności.

items: [{ 
     xtype: 'textfield', 
     fieldLabel: 'First Name', 
     allowBlank: false, 
     msgTarget: 'under', 
     name: 'firstName', 
     blankText: 'This should not be blank!' 
    }, { 
     xtype: 'datefield', 
     allowBlank: false, 
     fieldLabel: 'Start date', 
     msgTarget: 'under', 
     invalidText: 'This value is not a valid date!' 
    }, { 
     xtype: 'textfield', 
     fieldLabel: 'Digits followed by A,B,or C', 
     msgTarget: 'under', 
     name: 'someText', 
     regex: /^\d+[ABC]$/, 
     regexText: 'This must be a string of digits followed by A, B, or C!' 
    }] 
+0

zapisałeś mój dzień :) – Sikandar

-1

Aby zmienić domyślny aktywny komunikat o błędzie, używamy setActiveError (msg). Zobacz poniższy kod.

items: [{ 
     xtype: 'textfield', 
     fieldLabel: 'First Name', 
     allowBlank: false, 
     id:'fn', 
     msgTarget: 'under', 
     name: 'firstName', 

    }, { 
     xtype: 'datefield', 
     allowBlank: false, 
     fieldLabel: 'Start date', 
     msgTarget: 'under', 
     } 
    ], 
renderTo: Ext.getBody() 
}); 
var m = Ext.getCmp('fn'); 
m.setActiveError("important"); //can change the text 
+0

To nie działa dobrze :( – LookAtMeNow

0

msgTarget: "Strona" doda ikonę błędu po prawej stronie pola, wyświetlając komunikat w okienku podręcznym po tylko najechaniu myszą.

jeśli uważnie zapoznać się z dokumentacją, jeszcze jedna opcja jest dla msgTarget http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.field.Text-cfg-msgTarget

[id elementu] Dodaj informację o błędzie bezpośrednio do innerHTML określonego elementu. musisz dodać "td" po prawej stronie kontrolki dynamicznie z identyfikatorem. następnie jeśli podasz msgTarget: 'id elementu', to zadziała.

referencyjna ->ExtJS4: How to show validation error message next to textbox, combobox etc

+0

Przepraszam :(czytałem, ale nie wiem dobrze rozumiem, próbuję msgTarget: 'myid' i document.getElementById ("myid"). innerHTML = 'moje msg';. Czy możesz zrobić przykład pracy dzięki – LookAtMeNow

0

Możemy użyć metody sprawdzania poprawności i zwrócić niestandardową wiadomość.

{ 
    xtype: 'textfield', 
    fieldLabel: 'Digits followed by A,B,or C', 
    msgTarget: 'under', 
    name: 'someText', 
    validator : function(value){ 
     var regex= /^\d+[ABC]$/; 
     if(!regex.test(value)){ 
       return "'This must be a string of digits followed by A, B, or C!'" 
      } 
     return true; 
    } 

}