Поле ввода формы GWT не имеет значения - PullRequest
0 голосов
/ 19 ноября 2011

У меня странная проблема с формами GWT и HTML.
Я создал простую FormPanel с тремя основными элементами: FileUpload для загрузки изображений, TextBox для имени изображения и Button для отправки.Все работает (я могу сохранить изображение, по крайней мере, на стороне сервера), за исключением того, что независимо от того, что я печатаю в поле ввода, оно не имеет значения, т.е. в элементе проверки Chrome я ясно вижу, что оно не имеет значения = "..."поле.

Почему это происходит и как это исправить?Я не могу сохранить имя, если оно отсутствует.
Редактировать:

private final FlowPanel imagePanel = new FlowPanel();
private final FormPanel form = new FormPanel();
private final FileUpload fileUpload = new FileUpload();
private final Button submitButton = new Button("Upload");
private final TextBox fileName = new TextBox();
private final HorizontalPanel hp = new HorizontalPanel();
private final VerticalPanel vp = new VerticalPanel();

public void onModuleLoad()
{
    vp.add(fileUpload);
    hp.add(fileName);
    hp.add(submitButton);
    vp.add(hp);
    form.add(vp);

    form.setEncoding(FormPanel.ENCODING_MULTIPART);
    form.setMethod(FormPanel.METHOD_POST);
    form.setAction("/upload");

    fileUpload.setName("upload"); // image identifier, used in upload handler

    fileName.setName("fileName");
    fileName.setValue("Enter file name");
    fileName.setMaxLength(40);
    fileName.addStyleName("fileNameHint");

    RootPanel.get("uploadBar").add(form);
    RootPanel.get("thumbnails").add(imagePanel);
}

Это все макеты, кроме обработчиков событий.Все, что происходит на SubSubmit, - это проверка значения fileUpload на допустимые расширения файлов.

Ответы [ 2 ]

1 голос
/ 20 июля 2012

На той же ноте основной причиной моей проблемы было то, что я вызвал form.reset () слишком рано.Обратите внимание, что само поле ввода будет целью form.submit () и form.reset ().Таким образом, ваш TextBox также будет отправлен как form.submit (), и если вы вызовете сброс, он будет уничтожен.

0 голосов
/ 19 ноября 2011

Атрибут value определяет свойство defaultValue узла. Установка свойства value (программно или интерактивно в элементе управления) не приводит к изменению атрибутов элемента.

Если вы хотите увидеть текущее значение элемента в Инструментах разработчика Chrome, выберите его на панели «Элементы» (оно уже выбрано, если вы используете пункт контекстного меню «Проверить элемент») и введите $0.value в консоли JavaScript .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...