Javascript - 同一事件的多个客户端验证

时间:2008-11-03 20:32:07

标签: javascript html validation

我在samve事件的客户端执行了两次验证。 我已经定义了我的验证,如下所示

btnSearch.Attributes["OnClick"] = "javascript:return prepareSave(); return prepareSearch();"

的伪代码
prepareSave():
{
  if (bPendingchanges)
    {
     return confirm('Need to save pending changes first, click OK and loose changes or cancel to save them first')
    }
  else
   {return true}
}

的伪代码
prepareSearch():
{
  if (bNoSearchText)
    {
      alert('Please specify search criteria before proceeding')
      return false;
   }
  else
   {return true;}
}

bPendingchanges=false时,我从未进行第二次验证。 谁能快速发现我在这里忽略的东西?请?

4 个答案:

答案 0 :(得分:2)

顾名思义,

return将控制权返回给所谓的代码。因此,任何返回陈述后的内容

return prepareSave(); return prepareSearch();
//                    ^^^^^^^^^^^^^^^^^^^^^^^ e.g. this part

永远不会执行。试试return (prepareSave() && prepareSearch());

答案 1 :(得分:0)

永远不会达到您的第二个return声明。执行在javascript:return prepareSave()之后停止。

如果两个函数都返回true,则看起来要返回true - 因此,请执行:

btnSearch.Attributes["OnClick"] = javascript: return prepareSave() && prepareSearch();

答案 2 :(得分:0)

那是因为返回阻止了第二次验证的运行。试试这个

btnSearch.Attributes["OnClick"] = "javascript:return prepareSave() && prepareSearch();"

答案 3 :(得分:0)

"javascript:return prepareSave(); return prepareSearch();"

1)你不应该有“javascript:”
2)永远不会执行return prepareSearch();,因为"return prepareSave();会退出您的事件处理程序

尝试"return (prepareSave() && prepareSearch());"