jQuery বৈধতা: ডিফল্ট ত্রুটি বার্তা পরিবর্তন করুন


363

JQuery বৈধতা প্লাগইনে ডিফল্ট ত্রুটি মানগুলি পরিবর্তন করার কোনও সহজ উপায় আছে ?

আমি আমার অ্যাপ্লিকেশনটিতে আরও ব্যক্তিগত হতে ত্রুটি বার্তাগুলি আবার লিখতে চাই - আমার অনেকগুলি ক্ষেত্র রয়েছে, তাই আমি ক্ষেত্রের জন্য পৃথকভাবে বার্তাটি সেট করতে চাই না ... আমি জানি আমি এটি করতে পারি!

উত্তর:


732

বার্তা ওভাররাইড করার জন্য বৈধতা প্লাগইন পরে অন্তর্ভুক্ত একটি পৃথক ফাইল / স্ক্রিপ্টে এই কোড যুক্ত করুন, ইচ্ছায় সম্পাদনা করুন :)

jQuery.extend(jQuery.validator.messages, {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",
    url: "Please enter a valid URL.",
    date: "Please enter a valid date.",
    dateISO: "Please enter a valid date (ISO).",
    number: "Please enter a valid number.",
    digits: "Please enter only digits.",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
    minlength: jQuery.validator.format("Please enter at least {0} characters."),
    rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
    range: jQuery.validator.format("Please enter a value between {0} and {1}."),
    max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
    min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});

31
দুর্দান্ত কাজ করেছেন আমি কেবল যুক্ত করেছি: ex। সম্প্রসারিত (valid। বৈধতা। ম্যাসেজসমূহ, {আবশ্যক: "প্রয়োজনীয়"});
রবি রাম

6
আমি এটি একটি বহুভাষার ফর্মটির দ্রুত স্থির হিসাবে ব্যবহার করেছি: যদি ($ ('দেহ') att অ্যাটর ('ল্যাং') == "এস") {jQuery.extend ...};
হেরাল্ডমোনকি

5
@ নিকক্রাভার, কেবল এটি বলতে চেয়েছিলেন যে আমি এই প্রশ্নটি দিয়ে এতগুলি উত্সাহ উত্পন্ন করার আশা করিনি ... এবং একটি সময়োচিত এবং দ্রুত উত্তরের জন্য ভাল করে দিয়েছি!
কেভিন ব্রাউন

3
দুঃখিত কাজ করছি না। কোনও বার্তা দেখানো হয় না, আমি দৈর্ঘ্য ব্যবহার করি তবে প্রয়োজনীয় বার্তা প্রদর্শিত হয় used
প্রতীক

2
আমরা ত্রুটি বার্তায় ফর্ম উপাদান নাম অন্তর্ভুক্ত করতে পারি? পরিবর্তে কেবল সাধারণ বার্তা। অর্থাত্ এই ক্ষেত্রটির পরিবর্তে লগইন ক্ষেত্রটি প্রয়োজন
মুসাদ্দিক খান

239

আপনি বৈধ কলটিতে নিজের বার্তাগুলি নির্দিষ্ট করতে পারেন। বৈধকরণ প্লাগইন ডকুমেন্টেশনে ( http://jquery.bassistance.de/uthorate/demo/milk/ ) ব্যবহৃত মিল্ক সাইনআপ ফর্মটি থেকে এই কোডটি উত্তোলন এবং সংক্ষেপণ , আপনি সহজেই নিজের বার্তা নির্দিষ্ট করতে পারেন:

var validator = $("#signupform").validate({
    rules: {
        firstname: "required",
        lastname: "required",
        username: {
            required: true,
            minlength: 2,
            remote: "users.php"
        }
    },
    messages: {
        firstname: "Enter your firstname",
        lastname: "Enter your lastname",
        username: {
            required: "Enter a username",
            minlength: jQuery.format("Enter at least {0} characters"),
            remote: jQuery.format("{0} is already in use")
        }
    }
});

বৈধকরণের জন্য সম্পূর্ণ এপিআই (...): http://jqueryediaation.org/omotate


7
ইনপুটটির জন্য ধন্যবাদ, তবে আপনি যদি প্রশ্নটি আরও ঘনিষ্ঠভাবে পড়েন, আমি ডিফল্টগুলি কীভাবে পরিবর্তন করব তা জিজ্ঞাসা করছি। আমি জানি আমি অনন্য বার্তা নির্দিষ্ট করতে পারি।
কেভিন ব্রাউন

41
শুধু পিচিং করা - এটি প্রশ্নের পক্ষে লক্ষ্য না থাকলেও, এটি আমার পক্ষে সহায়ক।
ব্রায়ান ম্যালোন

1
হ্যাঁ এটিকে আসলে ডিফল্টগুলি পরিবর্তনের চেয়ে ভাল ধারণা বলে মনে হচ্ছে, যদিও এটিই ওপি মূলত বলেছিল
রজার

2
@LisaCerilli আমি একই ছিল, পরিবর্তন করে এটি সংশোধন jQuery.format("...করতেjQuery.validator.format("...
lehel

1
আমি জানি এটি পুরানো, তবে প্রথম লিঙ্কটি নষ্ট হয়ে গেছে।
আকস্মমত

87

এটি আমার পক্ষে কাজ করেছে:

$.validator.messages.required = 'required';

valid .)ator.messages.maxlength = jQuery. লাডিয়েটার.ફોর্ম্যাট ("দয়া করে {0} অক্ষরের বেশি লিখবেন না।"); কাজ করে না. আমি পরিবর্তে নিক ক্র্যাভারস সমাধানটি ব্যবহার করার পরামর্শ দিচ্ছি।
বিদার ভেষ্টনেস

1
@ ভিডারভেস্টনেস সমাধানটি আপনার দৃশ্যের জন্যও কাজ করে। আপনি কেবল বিন্যাসের স্ট্রিং নির্দিষ্ট করেছেন, এবং প্লাগইনটি $.validator.messages.maxlength = "Please enter no more than {0} characters.";
বাকীটি করে

48

এটি আমার পক্ষে কাজ করেছে:

// Change default JQuery validation Messages.
$("#addnewcadidateform").validate({
        rules: {
            firstname: "required",
            lastname: "required",
            email: "required email",
        },
        messages: {
            firstname: "Enter your First Name",
            lastname: "Enter your Last Name",
            email: {
                required: "Enter your Email",
                email: "Please enter a valid email address.",
            }
        }
    })

মনে রাখবেন যে এই উত্তরটি jqueryValidation এবং jqueryFileUpload নয়, ফাংশনটিতে messagesঅপশনগুলিও রয়েছে $().fileupload
জাভিয়ের পোর্টেবোইস

39

যেহেতু আমরা ইতিমধ্যে JQuery ব্যবহার করছি, তাই আমরা পৃষ্ঠা ডিজাইনারকে কোডের পরিবর্তে মার্কআপে কাস্টম বার্তা যুক্ত করতে দিতে পারি:

<input ... data-msg-required="my message" ...

বা, সমস্ত ক্ষেত্রে একক সংক্ষিপ্ত ডেটা-পিকচার গুণাবলী ব্যবহার করে আরও সাধারণ সমাধান:

<form id="form1">
    <input type="text" id="firstName" name="firstName" 
        data-msg="Please enter your first name" />
    <br />
    <input type="text" id="lastName" name="lastName" 
        data-msg="Please enter your last name" />
    <br />
    <input type="submit" />
</form>

এবং কোডটিতে এর পরে এমন কিছু রয়েছে:

function getMsg(selector) {
    return $(selector).attr('data-msg');
}

$('#form1').validate({
    // ...
    messages: {
        firstName: getMsg('#firstName'),
        lastName: getMsg('#lastName')
    }
    // ...
});

এটি একটি দুর্দান্ত কৌশল, বিশেষত আপনার যদি আপনার জেএস ফাইলগুলিতে সেট না করে একটি গতিশীল বার্তা প্রয়োজন হয় ...
চার্লস হারমন

@ ব্যবহারকারী1207577, হ্যাঁ আমরা কাস্টম বার্তাগুলি সেট করতে পারি তবে কীভাবে আমরা ন্যূনতম দৈর্ঘ্য এবং সর্বোচ্চ দৈর্ঘ্যের বার্তাটি প্রদর্শন করতে পারি। মানে আমরা যদি কাস্টম সেট করি তবে মিনিমাম এবং ম্যাক্স মেসেজটি প্রদর্শিত হচ্ছে না? কোন আইডিয়া?
নরেন ভার্মা

22

আর একটি সম্ভাব্য সমাধান হ'ল ক্ষেত্রগুলি লুপ করা, প্রতিটি ক্ষেত্রে একই ত্রুটি বার্তা যুক্ত করা।

$('.required').each(function(index) {
  $(this).rules("add", {
    messages: {
      required: "Custom error message."
   }
  });
});

1
এই সমাধানটি আমি যা খুঁজছিলাম ঠিক সেটাই ছিল ... আমার দৃশ্যে প্রতিটি ফর্ম ফিল্ডের একটি লেবেল রয়েছে, তাই আমি এটির সাথে সম্পর্কিত লেবেলটি খুঁজে পাই এবং বার্তাটিকে প্রিপেন্ড করি যাতে শেষ পর্যন্ত এটি বলে "প্রথম নামটি প্রয়োজনীয়" " গ্যানসকে খুব সুন্দর।
tjans

1
+1 অন্যান্য উত্তরগুলির সবগুলি বৈধ হলেও আমি এটির বাক্য গঠনটি খুঁজছিলাম।
স্কট.কোরিন

6

প্লাগইন উত্স কোড পরিবর্তন করার পরিবর্তে আপনি ডাউনলোডের স্থানীয়করণ ফোল্ডারের মতো ফর্ম্যাটটিতে একটি অতিরিক্ত জেএস ফাইল অন্তর্ভুক্ত করতে পারেন এবং যাচাইকরণের পরে এটিতে অন্তর্ভুক্ত করতে পারেন jjs

jQuery.extend(jQuery.validator.messages, {
    required: ...,
    maxlength: jQuery.validator.format(...),
    ...
});

এটা না। এটি প্রযুক্তিগতভাবে আপনার উত্তর হিসাবে একই। আমি আপনার উত্তরটির পুরানো সংস্করণে আমার মন্তব্য পোস্ট করেছি। তারপরে আমার নিজের উত্তর লিখেছিল। ক্রমাগত পৃষ্ঠাটি পুনরায় লোড ছাড়াই সব। এইভাবে আমি আপনার মন্তব্যটি যাচাই করার সময় আপনাকে কেবল উত্তরটি সম্পাদিত হতে দেখেছি
jitter

5

@ জোশ: আপনি আপনার সংস্থান বান্ডেল থেকে অনূদিত বার্তায় আপনার সমাধানটি প্রসারিত করতে পারেন

<script type="text/javascript">
    $.validator.messages.number = '@Html.Raw(@Resources.General.ErrorMessageNotANumber)';
</script>

আপনি যদি এই কোডটি আপনার _ লেআউটসিএইচটিএমএল (এমভিসি) তে রেখে দেন তবে এটি আপনার সমস্ত দর্শনগুলির জন্য উপলব্ধ


4

আমি কখনও ভাবিনি যে এটি এত সহজ হবে, আমি এই জাতীয় বৈধতা হ্যান্ডেল করার জন্য একটি প্রকল্পে কাজ করছি।

নীচের উত্তরটি যিনি অনেক চেষ্টা ছাড়াই বৈধতা বার্তা পরিবর্তন করতে চান তাদের পক্ষে দুর্দান্ত সাহায্য করবে।

নীচের পন্থাগুলি "এই ক্ষেত্র" এর জায়গায় "স্থানধারকের নাম" ব্যবহার করে।

আপনি সহজে জিনিস পরিবর্তন করতে পারেন

   // Jquery Validation   
   $('.js-validation').each(function(){

       //Validation Error Messages 

       var validationObjectArray = [];

       var validationMessages = {};

       $(this).find('input,select').each(function(){  // add more type hear

          var singleElementMessages = {};

          var fieldName = $(this).attr('name');

          if(!fieldName){  //field Name is not defined continue ;
              return true;
          }


          // If attr data-error-field-name is given give it a priority , and then to placeholder and lastly a simple text

          var fieldPlaceholderName = $(this).data('error-field-name') || $(this).attr('placeholder') || "This Field";

          if( $( this ).prop( 'required' )){

              singleElementMessages['required'] = $(this).data('error-required-message') || $(this).data('error-message')  || fieldPlaceholderName + " is required";

          }

          if( $( this ).attr( 'type' ) == 'email' ){

              singleElementMessages['email'] = $(this).data('error-email-message') || $(this).data('error-message')  || "Enter valid email in "+fieldPlaceholderName;

          }       



          validationMessages[fieldName] = singleElementMessages;

       });


       $(this).validate({
          errorClass   : "error-message",
          errorElement : "div",
          messages     : validationMessages  
       });  
   });  

এই ভাগ করার জন্য আপনাকে ধন্যবাদ। "ত্রুটিশ্রেণী" এবং "ত্রুটিযুক্তি" এর ব্যবহার প্রতিভা! আমি এখন বৈধতা থেকে তৈরি আমার ত্রুটি বার্তাগুলির স্টাইলিং এবং অবস্থান প্রয়োগ করতে পারি!
justdan23

3

নতুন সংস্করণে আপনি করতে পারেন এমন কিছু দুর্দান্ত ইন-লাইন জিনিস রয়েছে।

যদি এটি একটি সাধারণ ইনপুট ক্ষেত্র হয় তবে আপনি data-validation-error-msgএই জাতীয় বৈশিষ্ট্য যুক্ত করতে পারেন -

data-validation-error-msg="Invalid Regex"

আপনার যদি কিছু ভারী কিছু প্রয়োজন হয় তবে আপনি ভেরিয়েট ফাংশনে উত্তীর্ণ সমস্ত মানগুলির সাথে একটি ভেরিয়েবল ব্যবহার করে জিনিসগুলি সম্পূর্ণরূপে কাস্টমাইজ করতে পারেন। সম্পূর্ণ বিবরণের জন্য এই লিঙ্কটি উল্লেখ করুন - https://github.com/victorjonsson/jQuery-Form-Validator#fully-customizable


1
এটি ওপি সম্পর্কে জিজ্ঞাসা করা jQuery বৈধকরণ প্লাগইনগুলির চেয়ে পৃথক প্লাগইন। যদিও কোনও খারাপ পছন্দ নয়, বিশেষত যদি HTML আপিলগুলিতে আপনাকে বৈধতা সম্পর্কিত ডেটা (নিয়মাবলী, বার্তা) রাখে (jQuery বৈধকরণ প্লাগইন সেই সমস্তটির জন্য জাভাস্ক্রিপ্ট ব্যবহার করে বিপরীত পথে নেয়)। রেকর্ডটির জন্য অন্য বিকল্প উল্লেখ করার জন্য, পার্সলে.জেএস হ'ল এইচটিএমএল বৈশিষ্ট্যগুলির উপর নির্ভর করে এমন আরও একটি ব্যবহৃত এবং পূর্ণ-বৈশিষ্ট্যযুক্ত বৈধতা প্লাগইন।
এন্ড্রে উভয়ই

2

সমস্ত ডিফল্ট ত্রুটি বার্তাগুলি অপসারণ করতে

$.validator.messages.required = "";

1
নির্দিষ্ট ক্ষেত্রের জন্য এটি কীভাবে করবেন?
151291

1

jQuery ফর্ম যাচাইকরণ কাস্টম ত্রুটি বার্তা -সুতসামেক

ডেমো

$(document).ready(function(){
  $("#registration").validate({
    // Specify validation rules
    rules: {
      firstname: "required",
      lastname: "required",
      email: {
        required: true,
        email: true
      },      
      phone: {
        required: true,
        digits: true,
        minlength: 10,
        maxlength: 10,
      },
      password: {
        required: true,
        minlength: 5,
      }
    },
    messages: {
      firstname: {
      required: "Please enter first name",
     },      
     lastname: {
      required: "Please enter last name",
     },     
     phone: {
      required: "Please enter phone number",
      digits: "Please enter valid phone number",
      minlength: "Phone number field accept only 10 digits",
      maxlength: "Phone number field accept only 10 digits",
     },     
     email: {
      required: "Please enter email address",
      email: "Please enter a valid email address.",
     },
    },
  
  });
});
<!DOCTYPE html>
<html>
<head>
<title>jQuery Form Validation Using validator()</title>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.js"></script>
<style>
  .error{
    color: red;
  }
  label,
  input,
  button {
    border: 0;
    margin-bottom: 3px;
    display: block;
    width: 100%;
  }
 .common_box_body {
    padding: 15px;
    border: 12px solid #28BAA2;
    border-color: #28BAA2;
    border-radius: 15px;
    margin-top: 10px;
    background: #d4edda;
}
</style>
</head>
<body>
<div class="common_box_body test">
  <h2>Registration</h2>
  <form action="#" name="registration" id="registration">
 
    <label for="firstname">First Name</label>
    <input type="text" name="firstname" id="firstname" placeholder="John"><br>
 
    <label for="lastname">Last Name</label>
    <input type="text" name="lastname" id="lastname" placeholder="Doe"><br>
 
    <label for="phone">Phone</label>
    <input type="text" name="phone" id="phone" placeholder="8889988899"><br>  
 
    <label for="email">Email</label>
    <input type="email" name="email" id="email" placeholder="john@doe.com"><br>
 
    <label for="password">Password</label>
    <input type="password" name="password" id="password" placeholder=""><br>
 
    <input name="submit" type="submit" id="submit" class="submit" value="Submit">
  </form>
</div>
 
</body>
</html>


-2

এই কাস্টম ত্রুটি বার্তাগুলির পরিবর্তে আমরা পাঠ্য ক্ষেত্রের ধরণ নির্দিষ্ট করতে পারি।

উদা: টাইপের ক্ষেত্রে ক্ষেত্রের টাইপ = 'ইমেল'

তারপরে প্লাগইনটি ক্ষেত্রটি সনাক্ত করবে এবং সঠিকভাবে যাচাই করবে।


তিনি এটিকে সঠিকভাবে যাচাই করতে বলেন না, তিনি বার্তাগুলি পুনর্লিখন করতে বলেন .... "আমি কেবল ত্রুটি বার্তাগুলি আমার অ্যাপ্লিকেশনটিতে আরও ব্যক্তিগত হওয়ার জন্য আবার লিখতে চাই"
বেনোইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.