繁体   English   中英

jquery“return false”在更新面板中无法正常工作

[英]jquery “return false” not working properly inside update panel

我使用jquery来验证放置在更新面板中的文本框

$("[id*='btnCreate']").live('click', function () 
{
  var regex = new RegExp("^[a-zA-Z0-9]+$");
  if (!regex.test($("[id*='txtbxTemplateName']").val())) 
  {
     alert('hit');

     $("[id*='lblError']").text() = 'Template name is invalid!';

     return false;
  }
});

正在调用click事件函数,但在返回false之后仍然会触及后面的代码。

请帮帮我。

我认为你的意思是“仍在按照后面的代码”,没有阻止按钮的默认操作。 这是因为代码永远不会因为错误而return false

$("[id*='lblError']").text() = 'Template name is invalid!';
return false;

应该

$("[id*='lblError']").text('Template name is invalid!');
return false;

但是,您刚刚暴露了为什么return false是一种阻止事件默认操作的坏方法。 这很糟糕,因为错误处理程序中的任何错误都意味着不会阻止默认操作,因为return false是处理程序中的最后一个语句。

如果你使用event.preventDefault() ,会发生各种美好的事情。 其中最主要的是您可以在处理程序中更早地放置语句:

$("[id*='btnCreate']").live('click', function (event) {
  var regex = new RegExp("^[a-zA-Z0-9]+$");
  if (!regex.test($("[id*='txtbxTemplateName']").val())) {
    event.preventDefault();
    alert('hit');
    $("[id*='lblError']").text('Template name is invalid!');
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM