কীভাবে ম্যানুয়ালি jQuery বৈধতা সহ বৈধতা ট্রিগার?


143

আমি jQuery বৈধতা সহ ত্রুটি বার্তা প্রদর্শন সহ ম্যানুয়ালি বৈধতা ট্রিগার করতে চাই ।

আমি যে দৃশ্যটি সম্পাদন করার চেষ্টা করছি তা হ'ল একটি রূপ:

<form>
 <input id=i1> <button id=b1>
 <input id=i2> <button id=b2>
</form>

ক্লিক করার সময় b1, শুধুমাত্র i1বৈধ হওয়া উচিত। মুরগি ক্লিক করা b2, কেবল i2বৈধ হওয়া উচিত। তবে সমস্ত ক্ষেত্র অবশ্যই পোস্ট করা উচিত। কিভাবে আমি এটি করতে পারব? আমি ক্লিক ইভেন্টটি পরিচালনা করার জন্য b1/b2এবং ফর্মের কোনও অংশটি ম্যানুয়ালি বৈধতা দেওয়ার বিষয়ে ভেবেছিলাম ।


কেন এটি ম্যানুয়ালি বৈধ নয়? এই প্লাগইনটি পুরো ফর্মটি বৈধ করার জন্য খুব দরকারী, তবে এই ক্ষেত্রে ম্যানুয়ালি আরও স্থায়ী বৈধতা ফর্ম।
আনাতোলি

আমার উদাহরণটিতে ফর্মটি বড় নয়। আমি এটি স্বয়ংক্রিয় চাই।
usr ডিরেক্টরির

উত্তর:


176

এই গ্রন্থাগারটি একক উপাদানগুলির জন্য বৈধতার অনুমোদন বলে মনে হচ্ছে। একটি ক্লিক ইভেন্ট কেবল আপনার বোতামের সাথে সংযুক্ত করুন এবং নিম্নলিখিতগুলি চেষ্টা করুন:

$("#myform").validate().element("#i1");

উদাহরণ এখানে:

https://jqueryvalidation.org/Validator.element


15
এই সমগ্র ফর্ম যাচাই ... মাত্র 1 ক্ষেত্র যাচাই করতে, সঠিক পথ এই হল stackoverflow.com/a/12195091/114029
Leniel Maccaferri

যে কোনও কারণে আমি যখন এইভাবে যাচাই করি তখন আমি কাস্টম ত্রুটির পাঠ্য পাই না। আমি একটি ডুরান্ডাল ডায়ালগের অভ্যন্তরে ছুটে চলেছি তার সাথে কিছুটা থাকতে পারে। প্রসঙ্গে এই কাঠামোটি নিয়ে প্রচুর পরিমাণে সমস্যা রয়েছে।
পি.ব্রায়ান.ম্যাকি

@ রুবার্তো অলুই: লিঙ্কটি হ্রাস করা হয়েছে
সেবাস্তিয়ান

@ সেবাস্তিয়ান পিংয়ের জন্য ধন্যবাদ, এখনই লিঙ্কটি আপডেট করেছেন!
রবার্তো অ্যালোই

113

অথবা যে কোনও একটি সহজভাবে ব্যবহার করতে পারেন: $('#myElem').valid()

if ($('#myElem').valid()){
   // will also trigger unobtrusive validation only for this element if in place 
   // add your extra logic here to execute only when element is valid
}

নোট করুন যে validate()এই পদ্ধতিটি ব্যবহার করে এটি পরীক্ষা করার আগে ফর্মটিতে কল করা দরকার।

ডকুমেন্টেশনের লিঙ্ক: https://jqueryediaation.org/ अवैध/


15
validate()এই পদ্ধতিটি ব্যবহার করে এটি পরীক্ষা করার আগে ফর্মটিতে কল করা দরকার।
GETah

('(' # মাইলেম ') val ভাল () ==' 2017-4-12 ') {তারিখ নির্বাচন ভুল} অন্য {বৈধ নির্বাচন}
শ্রীনিবাস গৌড়

29

আমার পদ্ধতির নীচের মত ছিল। এখন আমি কেবল চাইছিলাম যখন একটি নির্দিষ্ট চেকবক্সটি ক্লিক করা / পরিবর্তন করা হয়েছিল তখন আমার ফর্মটি বৈধ করা উচিত:

$('#myForm input:checkbox[name=yourChkBxName]').click(
 function(e){
  $("#myForm").valid();
}
)

আমার প্রশ্ন যদি ($ ('# কিছু আইডি) ===' 2017-4-12) {$ ("# মাইফর্ম")। বৈধ করুন ()। উপাদান ("# আই 1")। বৈধ ();} অন্য {$ ( "# মাইফর্ম")। বৈধ করুন ()। উপাদান ("# আই 1")। অবৈধ (); code কোডটি সঠিক
শ্রীনিবাস গওদা

14

ডকুমেন্টেশনে যেমন লেখা আছে , প্রোগ্রামটিমে ফর্মের বৈধতা যাচাই করার উপায় হ'ল ভ্যালিডেটর.ফর্ম ()

var validator = $( "#myform" ).validate();
validator.form();

2
এটি প্রশ্নের উত্তর দেয় না, যেহেতু প্রশ্নটি একটি নির্দিষ্ট ক্ষেত্রকে বৈধ করার বিষয়ে। তবে এটি ঠিক আমি যা খুঁজছিলাম ধন্যবাদ!
jlh

4

1.14 সংস্করণ হিসাবে একটি অননুমোদিত পদ্ধতি আছে

validator.checkForm()

এই পদ্ধতিটি নিঃশব্দে সত্য / মিথ্যা ফেরতের জন্য বৈধতা দেয়। এটি ত্রুটি বার্তাগুলি ট্রিগার করে না।


9
Undocumented = যে কোনও সময় ভেঙে যেতে পারে।
usr ডিরেক্টরির

2

উপরে থেকে ইভা এম, উপরে পোস্ট হিসাবে প্রায় উত্তর ছিল (ধন্যবাদ ইভা এম!):

var validator = $( "#myform" ).validate();
validator.form();

এটি প্রায় উত্তর, তবে এটি ১৩ ডিসি 2018 পর্যন্ত সর্বাধিক আধুনিক জেকারি বৈধতা প্লাগইনে সমস্যা সৃষ্টি করে The সমস্যাটি হ'ল যদি কেউ সেই নমুনাকে সরাসরি অনুলিপি করে থাকে এবং এভের কল করে দেয়।। , বৈধতার ফোকাস / কী প্রসেসিংটি ভেঙে যেতে পারে এবং বৈধতাটি সঠিকভাবে ত্রুটিগুলি প্রদর্শন করতে পারে না।

এখানে ইভা এম এর উত্তরটি কীভাবে ব্যবহার করবেন এবং নিশ্চিত করুন যে সেই ফোকাস / কী / ত্রুটি-লুকানোর সমস্যাগুলি ঘটে না:

1) আপনার বৈধকারীকে একটি পরিবর্তনশীল / বিশ্বব্যাপী সংরক্ষণ করুন।

var oValidator = $("#myform").validate();

2) $ ("# মাইফর্ম") কল করবেন না valid

যদি আপনি $ ("# মাইফর্ম") কল করেন (

3) পরিবর্তনশীল / গ্লোবাল এবং কল ফর্ম ব্যবহার করুন।

var bIsValid = oValidator.form();

1

আমার অনুরূপ ক্ষেত্রে, আমার নিজস্ব বৈধতা যুক্তি ছিল এবং বার্তাটি দেখানোর জন্য jQuery বৈধতা ব্যবহার করতে চেয়েছিলাম। এই আমি কি ছিল।

//1) Enable jQuery validation
var validator = $('#myForm').validate();

$('#myButton').click(function(){
  //my own validation logic here
  //.....
  //2) when validation failed, show the error message manually
  validator.showErrors({
    'myField': 'my custom error message'
  });
});


0

আমি এটি চেষ্টা করেছি tnx @ আনস্তাসিওসিয়াল আমি এই থ্রেডে ভাগ করতে চাই।

আমি ক্ষেত্রগুলি খালি করার সময় ইনপুট ক্ষেত্রগুলি কীভাবে ট্রিগার হয় না তা আমি ইতিবাচক নই। তবে আমি প্রতিটি প্রয়োজনীয় ক্ষেত্র স্বতন্ত্রভাবে ব্যবহার করে ট্রিগার করতে সক্ষম হয়েছি:

$(".setting-p input").bind("change", function () {
        //Seven.NetOps.validateSettings(Seven.NetOps.saveSettings);
        /*$.validator.unobtrusive.parse($('#saveForm'));*/
        $('#NodeZoomLevel').valid();
        $('#ZoomLevel').valid();
        $('#CenterLatitude').valid();
        $('#CenterLongitude').valid();
        $('#NodeIconSize').valid();
        $('#SaveDashboard').valid();
        $('#AutoRefresh').valid();
    });

এখানে আমার মতামত

@using (Html.BeginForm("SaveSettings", "Settings", FormMethod.Post, new {id = "saveForm"}))
{
    <div id="sevenRightBody">
        <div id="mapMenuitemPanel" class="setingsPanelStyle" style="display: block;">
            <div class="defaultpanelTitleStyle">Map Settings</div>
            Customize the map view upon initial navigation to the map view page.
            <p class="setting-p">@Html.LabelFor(x => x.NodeZoomLevel)</p>
            <p class="setting-p">@Html.EditorFor(x => x.NodeZoomLevel) @Html.ValidationMessageFor(x => x.NodeZoomLevel)</p>
            <p class="setting-p">@Html.LabelFor(x => x.ZoomLevel)</p>
            <p class="setting-p">@Html.EditorFor(x => x.ZoomLevel) @Html.ValidationMessageFor(x => x.ZoomLevel)</p>
            <p class="setting-p">@Html.LabelFor(x => x.CenterLatitude)</p>
            <p class="setting-p">@Html.EditorFor(x => x.CenterLatitude) @Html.ValidationMessageFor(x => x.CenterLatitude)</p>
            <p class="setting-p">@Html.LabelFor(x => x.CenterLongitude)</p>
            <p class="setting-p">@Html.EditorFor(x => x.CenterLongitude) @Html.ValidationMessageFor(x => x.CenterLongitude)</p>
            <p class="setting-p">@Html.LabelFor(x => x.NodeIconSize)</p>
            <p class="setting-p">@Html.SliderSelectFor(x => x.NodeIconSize) @Html.ValidationMessageFor(x => x.NodeIconSize)</p>
        </div>

এবং আমার সত্তা

   public class UserSetting : IEquatable<UserSetting>
    {
        [Required(ErrorMessage = "Missing Node Zoom Level.")]
        [Range(200, 10000000, ErrorMessage = "Node Zoom Level must be between {1} and {2}.")]
        [DefaultValue(100000)]
        [Display(Name = "Node Zoom Level")]
        public double NodeZoomLevel { get; set; }

        [Required(ErrorMessage = "Missing Zoom Level.")]
        [Range(200, 10000000, ErrorMessage = "Zoom Level must be between {1} and {2}.")]
        [DefaultValue(1000000)]
        [Display(Name = "Zoom Level")]
        public double ZoomLevel { get; set; }

        [Range(-90, 90, ErrorMessage = "Latitude degrees must be between {1} and {2}.")]
        [Required(ErrorMessage = "Missing Latitude.")]
        [DefaultValue(-200)]
        [Display(Name = "Latitude")]
        public double CenterLatitude { get; set; }

        [Range(-180, 180, ErrorMessage = "Longitude degrees must be between {1} and {2}.")]
        [Required(ErrorMessage = "Missing Longitude.")]
        [DefaultValue(-200)]
        [Display(Name = "Longitude")]
        public double CenterLongitude { get; set; }

        [Display(Name = "Save Dashboard")]
        public bool SaveDashboard { get; set; }
.....
}

3
এই উত্তরটি একটি নেট পরিবেশ অনুমান করে যখন প্রশ্নটি স্পষ্টভাবে jQuery বৈধতা নিয়ে উদ্বেগ প্রকাশ করে।
কেনোগু ল্যাবজ

0

আপনি যদি validate()কোনও ফর্মের পরামিতিগুলি ব্যবহার করেন এবং পরে নিজের ফর্মের একটি ক্ষেত্রটি ম্যানুয়ালি বৈধ করতে চান তবে একটি ভাল উপায় রয়েছে :

var validationManager = $('.myForm').validate(myParameters);
...
validationManager.element($(this));

ডকুমেন্টেশন: ভ্যালিডেটর.ইলেট ()

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