2016-09-30 58 views

回答

0

試試這個:

$(document).on('keyup','textarea',function(){ 
    if($(this).val() != ""){ 
    var textarea = $(this).val().replace(/ /g,''); 
    var length = textarea.length; 

    if(length > 500){ 
     alert('Limit reached'); 
    } 
    } 
}); 
+0

不工作... :( – Haryia

+0

@Haryia什麼你在輸出嗎?在控制檯的任何錯誤? –

+0

沒有錯誤,但提交的形式沒有計算控制 – Haryia

0
$(document).on('keyup','textarea',function(){ 
    var textarea = $(this).val().replace(/ /g,''); 
    var newLength = textarea.length; 
//set to new max length (basically 500 + whitespaces' length) 
$(this).attr('maxlength',500 +($(this).val().length - newLength)); 
}); 
+0

也試過,但沒有.. – Haryia

1

您需要創建自己的自定義規則,參見例如:

$.validator.addMethod('customLength', function (value, elm, param) { 
    //Your Validation rule here  
    return elm.value.replace(/ /g,'').length <= 500; // return bool 
}); 


$(document).ready(function() { 
    $("#form").validate({ 
     rules: { 
      "name": { 
       required: true, 
       customLength: true 
      } 
     }, 
     messages: { 
      "name": { 
       required: "Please, enter a name", 
       customLength: 'Custom error message!' 
      } 
     }, 
     submitHandler: function (form) { // for demo 
      alert('valid form submitted'); // for demo 
      return false; // for demo 
     } 
    }); 

}); 
0

如果你正在使用你提到jquery-validate。然後,請添加另一個jsadditional-methods.min.js其中有一個額外的能力來處理自定義邏輯

HTML頁面

<html> 
    <head> 
     <script type="text/javascript" src="/js/jquery.js"></script> 
     <script type="text/javascript" src="/js/jquery-validate.js"></script> 
     <script type="text/javascript" src="/js/additional-methods.min.js"></script> 
    </head> 
    <body> 
     <form id="formID" name="formID" method="post"> 
      <textarea id="textareaID" name="textareaID" ></textarea> 
      <input id="submitBtn" type="submit"> 
     </form> 

     <script> 
      $(document).ready(function(){ 
       $("#formID").validate({ 
        rules: { 
         textareaID:{ 
          required:true, 
          checkLenght:true 
         } 
        }, 
        messages: { 
         textareaID:{ 
          required:'Please enter', 
          checkLenght:'msg..' 
         } 
        } 
       }); 
      }); 

      $.validator.addMethod("checkLenght", function(value, element){ 
       var count = (value.match(/\d/g) || []).length; 

       if(count == 0 || count >500) 
        return false; 
       else 
        return true; 

       /*here is example regex you can write as per you requirement*/ 
      }); 
     </script> 
    </body> 
</html> 

爲您進一步refrence:https://jqueryvalidation.org/jQuery.validator.addMethod/

希望我的解釋是對你的作品。

+0

我可以理解,但它不工作 我使用該代碼: $ j('#form-concorso')。validate({ textareaID:{ required:true, checkLenght:真 } }, 消息:{ textareaID:{ 必需的: '請輸入', checkLenght: 'MSG ..' } } }); 和 $ .validator.addMethod( 「checkLenght」,函數(值,元素){ 返回elm.value.replace(/ /g,'').length <= 500; }); – Haryia

+0

你能分享你的代碼嗎? – CHiRAG

+0

代碼太長,所以我創建了一個jsfiddle: http://jsfiddle.net/haryia/rc8fka3h/ 謝謝! – Haryia