- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
起初我想说,虽然 RequiredFieldValidator 在 .NET 中使用,但我将这个术语用于 wicket,因为我想表示一个标签(颜色:红色和文本:*),当编辑器在 AjaxEditableLabel 旁边显示时AjaxEditableLabel 的 将是空白的。我已经设置了 AjaxEditableLabel.setRequired(true) 并且它正在工作,即无法提交表单。但是我无法跟踪 AjaxEditableLabel 旁边的那个红星标签。到目前为止我所做的是:
private class TaskTypeSettingsForm extends Form {
private static final long serialVersionUID = 10058L;
private FeedbackMessageFilter filter;
public TaskTypeSettingsForm(String id) {
super(id);
FeedbackPanel feedback = new FeedbackPanel("feedback");
filter = new FeedbackMessageFilter();
feedback.setFilter(filter);
add(feedback);
setOutputMarkupId(true);
final TaskTypeSettingsFormModel taskTypeSettingsFormModel = new TaskTypeSettingsFormModel();
IModel model = new BoundCompoundPropertyModel(taskTypeSettingsFormModel);
setModel(model);
final WebMarkupContainer div = new WebMarkupContainer("div");
div.setOutputMarkupId(true);
final ListView listView = new ListView("listView", new PropertyModel(taskTypeSettingsFormModel, "taskTypeList")) {
@Override
protected void populateItem(ListItem item) {
final String value = (String) item.getModelObject();
final int index = item.getIndex();
final Label star = new Label("star", "*");
//this label is always displaying, I need to
//display it when the editor is blank and hide when
//it contain valid text
star.setOutputMarkupId(true);
final AjaxEditableLabel label = new AjaxEditableLabel("value", new Model(value)) {
@Override
public void onSubmit(AjaxRequestTarget target) {
super.onSubmit(target);
//here I also try to get the editor
//and add a SimpleAttributeModifier
//with a javaScript for onBlur
//event, but that script is not
//working as I am not able to
//append that script to the
//editor's existing ajax
String input = (String) getModelObject();
if (input != null) {
taskTypeSettingsFormModel.getTaskTypeList().set(index, input);
}
}
};
label.setRequired(true);
item.add(star);
label.setOutputMarkupId(true);
label.add(new SimpleAttributeModifier("style", "cursor: pointer; cursor: hand;"));
label.add(new AbstractValidator() {
@Override
protected void onValidate(IValidatable validatable) {
String value = (String) validatable.getValue();
Pattern pattern = Pattern.compile("^[a-zA-Z0-9]+$");
Matcher matcher = pattern.matcher(value);
if (!matcher.matches()) {
error(validatable);
}
}
@Override
protected String resourceKey() {
return "task_type_settings_form.error.regexFailure";
}
});
item.add(label);
item.add(removeLink("removeLink", item));
item.add(moveUpLink("up", item));
item.add(moveDownLink("down", item));
}
};
listView.setOutputMarkupId(true);
listView.setReuseItems(true);
div.add(listView);
//some code
}
@Override
protected void validate() {
filter.reset();
super.validate();
}
@Override
public void onSubmit() {
TaskTypeSettingsFormModel taskTypeSettingsFormModel = (TaskTypeSettingsFormModel) getModelObject();
for (String str : taskTypeSettingsFormModel.getTaskTypeList()) {
System.out.println(str);
}
}
}
希望我能解释一下这个场景。任何关于此的信息都会对我很有帮助。谢谢。
最佳答案
你可以用一个行为来代替标签卡在身边
public class RequiredStarBevaviour extends AbstractBehavior {
@Override
public void beforeRender(final Component component) {
super.beforeRender(component);
if (component instanceof FormComponent<?>) {
if (!((FormComponent<?>) component).checkRequired()) {
component.getResponse()
.write("<span class='redclass'>*</span>");
}
}
}
这将在每次呈现组件时运行,它将检查它是否是表单组件,如果不满足要求的检查,它将呈现星星。
编辑问题的回复:
final AjaxEditableLabel label = new AjaxEditableLabel("value",
new Model(value)) {
@Override
protected FormComponent newEditor(final MarkupContainer parent,
final String componentId, final IModel model) {
final FormComponent newEditor = super.newEditor(parent,
componentId, model);
newEditor.add(new RequiredStarBevaviour());
return newEditor;
}
@Override
public void onSubmit(final AjaxRequestTarget target) {
super.onSubmit(target);
// here I also try to get the editor
// and add a SimpleAttributeModifier
// with a javaScript for onBlur
// event, but that script is not
// working as I am not able to
// append that script to the
// editor's existing ajax
final String input = (String) getModelObject();
if (input != null) {
taskTypeSettingsFormModel.getTaskTypeList().set(index,
input);
}
}
};
关于java - Wicket- AjaxEditableLabel 的 RequiredFieldValidator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554717/
我有一个用户控件,它由一个带有一些附加功能的 TextBox 组成,但出于本示例的目的,只需假设它是一个普通的 TextBox 就足够了。我从 Web 窗体调用此用户控件,并希望能够使用 Requir
我有一个带有几个面板的 asp.net webform,每个面板里面都有几个文本框。我目前正在使用 jQuery 根据选择的 DropDownList 中的元素隐藏或显示面板。 我遇到了一个问题,即使
我有一个文本框,用户可以在其中输入他们想要的用户名。在我下面有一个复选框,单击它会将用户的电子邮件地址复制到文本字段中,然后禁用它以防止进一步更改。此功能是使用 jQuery 实现的。 问题是我在该
我的页面上有带有 RequiredFieldValidator 的 TextBox。我还有调用一些简单 javascript 的链接。 function DoSomething() { text
我有一个简单的 Web 表单,其中包含一个文本框和一个连接到它的 RequiredFieldValidator。当触发 RequiredFieldValidator 错误时,用户必须单击提交两次才能发
我有一个问题,什么可以阻止 requiredFieldValidator 阻止回发。 我开始研究一个较旧但简单的 aspx 表单,我的前任使用手动服务器端表单验证(检查某些表单字段是否有值,以及是否在
我似乎无法更改所需字段验证器的默认颜色。在源代码中它是: * 这是我的 .skin 文件中的内容: 在渲染的源代码中我看到: * required 注意“style=color:Red;”。那需要
我遇到了同样的问题as described here . 只有问题被标记为已回答,并仅解释为什么在输入字段上使用RequiredFieldValidator时可能必须单击两次 - 一次是因为文本框的模
我有 2 个字段需要验证,如果它们显示在屏幕上。当表单最初加载时,它们是隐藏的,除非从 DropDown 框中选择了一个项目,否则它们将保持隐藏状态。选择值后,将出现 2 个字段,然后验证工作正常。但
我有一个 ASP.NET 用户控件(一个注册表单),我需要添加一个 requiredFieldValidator 运行时。但是,它不起作用。这是我添加验证器的方法。 System.Web.UI.Web
问题:如何正确扩展自定义控件以使用 RequiredFieldValidator?我读过 this ,但尝试实现它并没有解决我的问题。这是我到目前为止想出的: 代码隐藏: [V
我有一个带有中继器的页面,其中包含 RadioButtonLists,其中附加了 requiredFieldValidators。我需要将 RFV 放在控件旁边(老实说,这是我让它正常工作的唯一方法!
是否可以将 requiredFieldValidator 添加到日历中?例如,我有一个提交按钮,如果在没有选择日期的情况下单击它,应该会出现红色文本,说明请先选择日期。 我知道一种方法是在 C# 代码
我正在从代码后面显示 requiredfieldvalidator 的错误消息,但显示设置为无或隐藏可见。我试着做 .visible = true 但它仍然是隐藏的。我怎样才能让它显示错误信息?文本框
我有自定义服务器控件,其中包含三个文本框。我需要使用 ASP.NET 字段验证器验证其内容。 我将 RequiredFieldValidator 的“ControlToValidate”属性设置为文本
假设我有一个在 aspx 文件中调用了 7 次的用户控件,我将字段验证器控件放在该用户控件中,问题是每次我单击一些导致回发的按钮时,字段验证器总是针对所有实例验证控件我的用户控件,我想要的是针对特定的
因此,根据这些建议,我更新了我的代码。 文本框: 按钮: 代码隐藏: addstudent.Student_Id =Convert.ToInt32(txtStuden
我在 ASPX 文件中有一些客户端脚本,它根据表单字段是否可见启用或禁用必填字段验证器。 var oVal1 = document.getElementById(v1); var oVal2 = do
我的 asp.net 网页中有一个 DropDownList。RequiredFieldValidator 不工作。感谢您查看我的代码。 " SelectCommand="Admin_Ge
这是我在 stackoverflow.com 上的第一个问题。 我正在做一个学校项目,我必须验证用户的输入。每次加载页面时,它都会给出服务器错误消息。请查看代码,以及后面的错误信息。
我是一名优秀的程序员,十分优秀!