【发布时间】:2013-08-12 17:26:39
【问题描述】:
首先,我没有编写此代码,我也不是 Java 程序员,我只是将其从“反馈表单”页面修改为“请求表单”页面。我的目标是禁用提交按钮并提醒用户需要勾选复选框和/或在未选中复选框时阻止它提交数据。我想尽可能避免使用 javascript。
这是代码的sn-p:
public Serializable getKey() {
String email = parameters.getParameter("email", "");
String message = parameters.getParameter("message", "");
String page = parameters.getParameter("page", "unknown");
return HashUtil.hash(email + "-" + message + "-" + page);
}
/**
* Generate the cache validity object.
*/
public SourceValidity getValidity() {
return NOPValidity.SHARED_INSTANCE;
}
public void addPageMeta(PageMeta pageMeta) throws SAXException,
WingException, SQLException, IOException,
AuthorizeException {
pageMeta.addMetadata("title").addContent(T_title);
pageMeta.addTrailLink(contextPath + "/", T_dspace_home);
pageMeta.addTrail().addContent(T_trail);
}
public void addBody(Body body) throws SAXException, WingException,
UIException, SQLException, IOException, AuthorizeException {
// Build the item viewer division.
Division ill = body.addInteractiveDivision("ill-form",
contextPath + "/ill", Division.METHOD_POST, "primary");
ill.setHead(T_head);
ill.addPara(T_para1);
List form = ill.addList("form", List.TYPE_FORM);
Text email = form.addItem().addText("email");
email.setAutofocus("autofocus");
email.setLabel(T_email);
email.setHelp(T_email_help);
email.setValue(parameters.getParameter("email", ""));
TextArea message = form.addItem().addTextArea("message");
message.setLabel(T_message);
message.setValue(parameters.getParameter("message", ""));
CheckBox copyright = form.addItem().addCheckBox("accept");
String selected = !parameters.getParameter("accept", "true").equalsIgnoreCase("false") ? "true" : "false";
copyright.setOptionSelected(selected);
copyright.addOption("accept", T_copyright_agree);
copyright.setLabel(T_copyright_label);
copyright.setHelp(T_copyright);
form.addItem().addButton("submit").setValue(T_submit);
ill.addHidden("page").setValue(parameters.getParameter("page", "unknown"));
}
}
提前感谢您的帮助。
【问题讨论】:
-
“我想避免使用 javascript。” JS 将是我的自然选择。为什么要避免呢?
-
如果你不是 java 开发者,你应该在javascript
-
我们说的是哪个执行环境?
-
@AndrewThompson,如果我将使用 JS,是否有没有 JS 后备?或者如果复选框未选中并且 JS 被禁用,表单仍然会提交吗?
-
"如果我要使用 JS,有没有 JS fallback?" 没有,默认启用,
onLoad禁用。如果用户的浏览器没有使用 JS,那么他们浏览大多数互联网网站(例如 Facebook 或 SO)的体验会非常下降,他们会习惯的。