我对GWT和HTML表单有一个奇怪的问题 我已经制作了一个简单的FormPanel,里面有3个基本元素:FileUpload用于图像上传,TextBox用于图像名称,Button用于提交。一切正常(我至少可以保存图像服务器端),除了我输入字段中输入的内容,它没有值,即在Chrome的Inspect Element中我清楚地看到它没有值=“......”领域。
为什么会发生这种情况,我该如何解决?如果名字没有,我就无法保存。
编辑:
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);
}
这是除事件处理程序之外的所有布局。在onSubmit上发生的所有事情都是检查fileUpload值是否允许使用文件扩展名。
答案 0 :(得分:1)
同样,我的问题的根本原因是我很快就调用了form.reset()。请注意,非常输入的字段将是form.submit()和form.reset()的目标。所以你的TextBox也将作为form.submit()发送,如果你调用reset,它将被删除。
答案 1 :(得分:0)
value
属性定义节点的defaultValue
属性。设置value
属性(以编程方式或交互式在控件中)不会更改元素的属性。
如果您想在Chrome的开发人员工具中查看元素的当前值,请在“元素”窗格中选择它(如果您使用“检查元素”上下文菜单项,则已选中它)并在其中键入$0.value
JavaScript控制台。