左导航验证

时间:2012-03-14 13:16:56

标签: javascript jsp

我有一个母版页,其中存在leftnavigation.jsp和header.jsp.Now leftnavigation包含少数网页的超链接(比如general.jsp,contact.jsp)。点击这些超链接,这些网页就会被打开。就像我点击一般链接一样,它会被打开,如果我点击contact.jsp的链接,联系网页就会被打开。现在这些网页在表格末尾的保存按钮上有验证。

现在,当用户点击左侧导航栏中的链接以更改网页时,我希望进行这些验证(每个网页都有“保存”按钮上的验证功能)。  leftnavigation.jsp不包含任何表单元素。它只包含链接或scripplets 有什么建议吗?

2 个答案:

答案 0 :(得分:0)

在导航链接上收听click事件,然后运行验证功能:

function listen(event, elem, func) {
  if (elem.addEventListener) {
    elem.addEventListener(event, func, false);
  } else if (elem.attachEvent) {
    elem.attachEvent('on' + event, func);
  }
}

var links = document.getElementsByTagName('a');

listen('click', links, validationFunction);

如果您传入变量,则将验证函数包装在匿名函数中:

listen('click', links, function(param) { validationFunction(param); });

答案 1 :(得分:0)

听起来很简单。您可以使导航栏链接在单击时调用表单的验证功能。也许是这样的事情:

<a href="anotherpage.jsp" onclick="validate(); return true;>Click me!</a>

只是警告:不可能以这种方式保证验证,用户可以绕过验证(例如,用户可以单击后退按钮)。如果这是您要实现的目标,请考虑运行验证功能onpropertychangedonkeyup。并且,一如既往,形式验证应该(几乎)永远不会成为障碍;如果用户没有输入正确的内容,请不要显示alert消息或做任何真正分散注意力的事情。

注意上面的代码如何让用户更改页面而不管表单的验证状态如何。如果表单验证失败,您可以使onclick函数返回false,但这可以被绕过,这对用户来说是一种阻碍。

如果这确实是必要的,请让链接无论如何都能正常工作,但是可能会以页面顶部隐藏弹出的div形式显示一条小消息,警告用户其中一个表单条目是不正确的。