1.Textbox: 在使用.validateNotNumber(TextBox)时,TextBox正在接受字母数字,因为我想在文本框中只有NAME'abc1234',它只接受'abcd'。如果文本框仅使用keyuphandler处理NUMBERS,它只接受'1234'n而不是'a1234',这是现在的当前行为。它接受'a1234'。意思是,第一个字符是正确验证的,如果我们输入'a',它确实没有验证,如果我们输入'a1234',它在第一个数字后正确验证,即它只在i / p后输出错误NUMBER类型的文本框区域中的第二个字符!
function doGet()
{
var app = UiApp.createApplication();
var panel = app.createVerticalPanel();
var grid = app.createGrid(11, 10).setId('maingrid');
var nameLabel = app.createLabel("Name:");
var nameTextBox = app.createTextBox().setName('name').setId('name');
var nameRequiredLabel = app.createLabel("*").setId('namerequired').setStyleAttribute("color", "red");
var requiredFieldLabel = app.createLabel("*-Required Field").setId('requiredfield').setStyleAttribute("color", "red");
grid.setWidget(0, 0, nameLabel).setWidget(0, 1, nameTextBox).setWidget(0, 2, nameRequiredLabel)
.setWidget(9, 2,requiredFieldLabel);
var invalidText=app.createClientHandler().validateNumber(nameTextBox)
.forTargets(nameTextBox).setStyleAttribute("color", "red")
.forTargets(nameRequiredLabel).setText('Please Enter a Valid Name.').setStyleAttribute("color", "red").setVisible(true);
var validText=app.createClientHandler().validateNotNumber(nameTextBox)
.forTargets(nameTextBox).setStyleAttribute("color","black")
.forTargets(nameRequiredLabel).setText('*').setStyleAttribute("color", "red").setVisible(true);
nameTextBox.addKeyUpHandler(invalidText).addKeyUpHandler(validText);
panel.add(grid);
app.add(panel);
return app;
}
注意:我也使用了.validateInteger(TextBox)和.validateNotInteger(TextBox),但它也提供了与上面相同的o / p(字母数字)。
2.DateBox: 它只接受DATES格式,并且在选择DATE后可以输入任何其他字符。 Fr例如。如果我选择DATE '14 -08-2012',它会接受超出此长度的任何其他字符,例如'14 -08-2012abc123',字面意思是shld是一种验证/限制字段的方法,如果它是任何REAL DATE格式只是DATE + TEXT。在意外情况下,用户可能会在DATE框中输入任何不需要的文本,我们可能需要避免这些文本!我们可能需要'.validateDateLength()来处理这个问题!
3.Drop Down box: 在任何给定的下拉框中,选项'SELECT'将是第一个选择,以便我们从下拉列表中选择所需的选项 我使用.validateMatches(“SELECT”)和.validateNotMatches(“SELECT”)来检查用户是否选择了任何选项,这意味着我想确保用户从NT下拉框中选择了一些内容留下选项UNSELECTED。但是,它似乎没有验证匹配。
4.Check Box,Radiobutton: 这两个控件,我只是想确保用户选择了我的任何RADIOS或任何我的CHECKBOXES,如果用户没有选择那些特定的RADIO,控制器会传递一个错误,说'PLZ SELECT THE RADIO /检查框选项以继续进行'。这样做的正确方法是什么?
EG。脚本
var valid = app.createClientHandler()
.validateNumber(number)
.validateNotInteger(text)
.validateEmail(email)
.validateNotMatches(listbox, 'select')
.forTargets(submit).setEnabled(true)
.forTargets(number,text,email).setStyleAttribute("color","black")
.forTargets(numberrequired,textrequired,emailrequired).setText('*')
.setStyleAttribute("color","red").setVisible(true);
我使用上面的代码进行'SUBMIT'按钮启用和禁用概念,在这本身中,ListBox没有正确验证'SELECT'选项。
所以,基本上,我希望所有这些验证都能正常运行,所以我要启用“提交/保存”,直到我的所有上述控件都被检查/验证,这样才能确保用户输入/选择了所有选项正确&是进入SUBMIT页面所需的格式。
希望,我很清楚,请不要犹豫,问我在某处错了/不清楚!
请指导我, 谢谢&问候, chocka。
答案 0 :(得分:0)
我怀疑addKeyPressHandler是错误的处理程序类型 - 有一个焦点样式处理程序 但是,是的,代码看起来或多或少是正确的。