Czy jest możliwe ustawienie atrybutu HTML5 autocomplete="off"
na TextField w Vaadin 7
? Szukałem, ale nie znalazłem sposobu na ustawienie atrybutów w polach tekstowych lub po prostu podpowiedź w przeglądarce, aby wyłączyć natywne autouzupełnianie na polach wejściowych w inny sposób w vaadin.Jak ustawić autouzupełnianie = "off" w vaadinie
Odpowiedz
myślę, że jedynym sposobem, jeśli używasz javascript:
TextField tf = new TextField();
tf.addStyleName("xyz");
JavaScript.getCurrent().execute(
"document.getElementsByClassName('xyz')[0].setAttribute('autocomplete', 'off')");
przedłużyć TextField ...
package com.example;
import com.vaadin.ui.TextField;
public class MyTextField extends TextField {
// do other customization here as needed
}
... i - co jest kluczowym punktemtutaj - jego client- boczne Złącze
package com.example.client;
import com.vaadin.client.ui.VTextField;
import com.vaadin.client.ui.textfield.TextFieldConnector;
import com.vaadin.shared.ui.Connect;
@Connect(com.example.MyTextField.class)
public class MyTextFieldConnector extends TextFieldConnector {
@Override
public VTextField getWidget() {
VTextField vTextField = super.getWidget();
vTextField.getElement().setAttribute("autocomplete","off");
return vTextField;
}
}
Nie zapomnij ponownie skompilować zestawu widżetów.
Jeśli używasz Viritin add-on, możesz teraz użyć klasy HtmlElementPropertySetter, aby owinąć komponent TextField i użyć go, aby ustawić właściwość elementu "autouzupełniania" na "wyłączone". Można również użyć komponentu MTextField że pochodzi z Viritin i po prostu go utworzyć w następujący sposób:
MTextField username = new MTextField("Username")
.withAutocompleteOff();
Jest to rozszerzenie do @Wojciech odpowiedź Marciniak. Jego podejście zadziałało dla mnie, ale chciałbym zauważyć parę lub trzy modyfikacje, które musiałem zrobić, aby działał od 2017/11/28.
1) autocomplete="off"
nie wydają się już działać w dzisiejszych czasach; przynajmniej nie w Chrome. Zamiast tego możesz użyć funkcji autocomplete="new-password"
, która działa w 64-bitowych 64-bitowych systemach Windows 62.0.3202.94. Zauważyłem też niespójne zachowanie tego atrybutu, ponieważ NOT zawsze działa - czasami na komponencie pojawi się lista z opcjami haseł (szczególnie, dopóki nie odświeżysz się kilka razy, itp.).
2a) Zamiast rozszerzenie komponentu, może chcesz zastąpić go tworząc pakiet com.vaadin.client.ui.(component)field
w projekcie, a następnie umieścić zmodyfikowany (component)FieldConnector.java
plik w nim (w moim przypadku było zmodyfikowanie PasswordField
) w przypadku, gdy chcesz wszystkie Twoje wystąpienia tego składnika, aby nie pamiętać haseł. Ostateczne źródło klasa powinna wyglądać następująco:
package com.vaadin.client.ui.passwordfield;
import com.vaadin.client.ui.VPasswordField;
import com.vaadin.client.ui.textfield.TextFieldConnector;
import com.vaadin.shared.ui.Connect;
import com.vaadin.ui.PasswordField;
@Connect(PasswordField.class)
public class PasswordFieldConnector extends TextFieldConnector {
@Override
public VPasswordField getWidget() {
VPasswordField vTextField = (VPasswordField) super.getWidget();
vTextField.getElement().setAttribute("autocomplete","new-password");
return vTextField;
}
}
Więc ten sposób nie trzeba żadnej innej klasy TextField rozciągający (lub PasswordField).
2b) Jeśli chcesz zezwolić niektórym polom na zapamiętywanie haseł i innych, które go nie zawierają, możesz odpowiednio rozszerzyć komponent i użyć preferowanego komponentu. Możesz zachować klasę konektorów jak w 2a), ale pamiętaj, aby nazwać ją czymś w rodzaju CustomPasswordFieldConnector
, a także powinieneś to zrobić pod @Connect
z tą klasą CustomPasswordField.class, umieść ją tam, gdzie mieści się ona w twoim projekcie i pamiętaj, aby dodać do niej właściwą import
złącze w razie potrzeby. Ta klasa jest po prostu sztuczna - możesz zostawić jej zawartość pustą na wypadek, gdybyś nie potrzebował dodatkowej funkcjonalności (ale pamiętaj, że powinna ona w tym przykładzie wydłużyć poprawne (component)Field
; PasswordField
).
- 1. Jak ustawić autouzupełnianie = off globalnie dla aplikacji ASP.NET?
- 2. jak zmienić kolor wiersza tabeli w vaadinie
- 3. jQueryUI wersja 1.10 autouzupełnianie - jak ustawić _renderItem?
- 4. jQuery UI-autouzupełnianie i Google Chrome autouzupełnianie
- 5. Różnica między "@echo off" i "@echo% off"?
- 6. Jak ustawić autouzupełnianie JQuery na POST zamiast GET?
- 7. Autouzupełnianie w Yii2
- 8. @echo off w DOS (CMD)
- 9. Włączanie expose_php OFF w php.ini
- 10. Wyłącz autouzupełnianie w polu tekstowym w Django?
- 11. Vim autouzupełnianie: Anulowanie autouzupełnianie popup
- 12. autouzupełnianie = wyłączone nie działa w chrome
- 13. Clickable autouzupełnianie, jak google
- 14. Włączanie raportowania off php
- 15. Jak włączyć usługę Compute Engine OFF
- 16. Android - jak odbierać zamiary transmisji ACTION_SCREEN_ON/OFF?
- 17. Jak wyłączyć autouzupełnianie przy użyciu elementu datalist w html
- 18. Autouzupełnianie w CEDET?
- 19. Autouzupełnianie w Netbeans
- 20. Autouzupełnianie w edytorze ACE
- 21. Autouzupełnianie PhpStorm w cechach
- 22. automatycznego generowania off komentarze XML w VB.NET
- 23. Ustaw NOCOUNT OFF na poziomie bazy danych?
- 24. Autouzupełnianie geograficzne w Androidzie
- 25. Tworzenie widgetu Autouzupełnianie interfejsu jQuery * faktycznie * autouzupełnianie
- 26. jak ustawić ostrość w kątowym autouzupełnianiu md?
- 27. Autouzupełnianie wtyczki IntelliJ
- 28. Vapor Xcode struktura projektu off
- 29. Jak radzić sobie z SET ANSI_NULLS ON lub OFF?
- 30. Autouzupełnianie oparte na symfony zrywa autouzupełnianie SCP
Nie pracuję już nad projektem Vaadin, aby potwierdzić, czy działa, czy nie. Jeśli niektóre strony trzecie potwierdzą, ustawię tę odpowiedź jako zaakceptowaną, ponieważ byłby to mój preferowany sposób w Javie, a nie JavaScript –