2013-01-04 41 views
2

我使用requiredfieldvalidator爲一些文本框,每個文本框都有placeholder屬性,但是當我點擊提交按鈕驗證器沒有觸發,這個問題是在IE中,因爲IE默認不支持佔位符所以我使用jQuery用於此目的,這是我的代碼:
的Jquery:
asp.net所需的字段沒有被解僱的文本框

<script type="text/javascript"> 
     $(document).ready(function() { 
      // $("#txtAddress").removeAttr("style"); 
      var userAgent = navigator.userAgent.toString().toLowerCase(); 
      if (userAgent.indexOf('ie') != -1) { 
       $('[placeholder]').focus(function() { 
        var input = $(this); 
        if (input.val() == input.attr('placeholder')) { 
         input.val(''); 
         input.removeClass('placeholder'); 
        } 
       }).blur(function() { 
        var input = $(this); 
        if (input.val() == '' || input.val() == input.attr('placeholder')) { 
         input.addClass('placeholder'); 

         input.val(input.attr('placeholder')); 
        } 
       }).blur(); 
      } 
     }); 
</script> 

天冬氨酸:

<asp:Label ID="lblResult" runat="server" Text=""></asp:Label> 
     <p> 
      <asp:TextBox ID="txtOrgName" runat="server" placeholder="ناوی دامەزراوە"></asp:TextBox> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ForeColor="red" CssClass="validator" ControlToValidate="txtOrgName" ErrorMessage="*"></asp:RequiredFieldValidator> 
     </p> 
     <br/> 
     <p> 
      <asp:TextBox ID="txtPhone" runat="server" placeholder="تەلەفۆن"></asp:TextBox> 

      <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" CssClass="validator" ControlToValidate="txtPhone" ForeColor="red" ErrorMessage="*"></asp:RequiredFieldValidator> 
     </p> 
     <br/> 
     <p> 
      <asp:TextBox ID="txtMobile" runat="server" placeholder="مۆبایل"></asp:TextBox> 

      <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtMobile" CssClass="validator" ForeColor="red" ErrorMessage="*"></asp:RequiredFieldValidator> 
     </p> 
     <br/> 
     <p>  
      <asp:TextBox ID="txtAddress" runat="server" TextMode="MultiLine" Height="120px" Width="200px" style="direction: ltr;" placeholder="ناونیشان"> 

      </asp:TextBox> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="txtAddress" CssClass="validator" ForeColor="red" ErrorMessage="*"></asp:RequiredFieldValidator> 
     </p> 
     <p> 
      <asp:Button ID="Button1" runat="server" Text="تۆمارکردن" /> 
     </p> 
+0

嘗試對文本框使用CausesValidation =「True」 –

回答

0
$(document).ready(function() { 
     if ($.browser.msie === true) { 
      $('#formId').find('[placeholder]').focus(function() { 
       var inputObjObj = $(this); 
       if (inputObj.val() == inputObj.attr('placeholder')) { 
        inputObj.val('').removeClass('placeholder'); 
       } 
      }).blur(function() { 
       var inputObj = $(this); 
       if (inputObj.val() == '' || inputObj.val() == inputObj.attr('placeholder')) { 
        inputObj.addClass('placeholder').val(inputObj.attr('placeholder')); 
       } 
      }).blur(); 

      $('#formId').find('#Button1').click(function() { 
       $(this).parents('form').find('[placeholder]').each(function (i) { 
        var inputObj = $(this); 
        if (inputObj.val() == inputObj.attr('placeholder')) { 
         inputObj.val('').removeClass('placeholder'); 
        } 
       }); 

       if (Page_ClientValidate()) { 
        //Form is valid; 
       } else { 
        //Form is not valid; 

        return false; 
       } 
      }); 
     } 
    });