jquery每个函数都无法在客户端上单击asp.net

时间:2012-08-27 12:12:26

标签: jquery asp.net

function AddressVal5() {
   $('.ma-addressEdit .address:visible input:text.number').each(function () {
      var maxLength = $(this).attr('maxLength');
      var thisLength = $(this).val().length;
      //  alert(maxLength + ' ' + thisLength)
      //$(this).next('.error').hide();
      if ($(this).val() == '' || thisLength < maxLength) {
         alert("sa");
         $(this).next('.error').show();
         return false;
      }
   });

   $('.ma-addressEdit .address:visible input:text, .ma-addressEdit .address:visible textarea').each(function () {
      var maxLength = $(this).attr('maxLength');
      var thisLength = $(this).val().length;
      $(this).next('.error').hide();
      if ($(this).val() == '' || thisLength < maxLength) {
         $(this).next('.error').show();
      }
   });

} 

我正在研究jquery验证它与

的正常工作
<a href="javascript:void(0);" class="clear" id="addressUpdateBtn"><img src="images/update.png" width="83" height="31" alt="Upate" onclick="AddressVal5()" /></a>                                    

但无法使用

<asp:ImageButton ID="imgbtnNewADD" runat="server"
                                ImageUrl="~/_layouts/images/Experia/update.png" CssClass="Nbutton" OnClientClick="return AddressVal5();" ToolTip="Add" OnClick="imgbtnNewADD_Click" />

错误消息来了,但请点击刷新请帮助..

1 个答案:

答案 0 :(得分:1)

可能是因为您在第二个return false;声明中没有each

编辑:哎呀。很简单!您正在从每个回调函数执行return而不是从AddressVal5执行。你应该有像

这样的东西
function AddressVal5() {
   var isValid = true;
   $('.ma-addressEdit .address:visible input:text.number').each(function () {
      var maxLength = $(this).attr('maxLength');
      var thisLength = $(this).val().length;
      //  alert(maxLength + ' ' + thisLength)
      //$(this).next('.error').hide();
      if ($(this).val() == '' || thisLength < maxLength) {
         alert("sa");
         $(this).next('.error').show();
         isValid = false;
         return false;
      }
   });

   $('.ma-addressEdit .address:visible input:text, .ma-addressEdit .address:visible textarea').each(function () {
      var maxLength = $(this).attr('maxLength');
      var thisLength = $(this).val().length;
      $(this).next('.error').hide();
      if ($(this).val() == '' || thisLength < maxLength) {
         $(this).next('.error').show();
         isValid = false;
         return false;
      }
   });
   return isValid;
} 

让它发挥作用。在第一种情况下,它工作正常,因为没有提交按钮。