8

में काम नहीं कर रहा है मेरे पास JQuery पॉपअप हैं और मैं इसके लिए आवश्यक फ़ील्ड सत्यापन रखना चाहता हूं और इसके लिए मैंने मॉडल में आवश्यक विशेषताओं को सेट किया है और दृश्य में उनके लिए सत्यापन संदेश भी सेट किया है लेकिन आवश्यक फ़ील्ड सत्यापन पॉपअप पर काम नहीं कर रहे हैं। आवश्यक फ़ील्ड सत्यापन JQuery पॉपअप के अलावा अन्य रूपों पर ठीक काम कर रहा है .... कृपया मुझे मार्गदर्शन करें कि इस समस्या से निपटने के लिए मुझे क्या करना चाहिए ... मेरा कोड निम्नलिखित है।आवश्यक फ़ील्ड सत्यापन JQuery पॉपअप एमवीसी 4

मॉडल

[Display(Name = "Material Code")] 
[Required(ErrorMessage = "*")] 
public string MaterialCode { get; set; } 

देखें

<li> 
    @Html.LabelFor(m => m.MaterialCode) 
    @Html.TextBoxFor(m => m.MaterialCode) 
    @Html.HiddenFor(m => m.MaterialCodeId) 
</li> 

और निम्नलिखित के बारे में कुछ एक JQuery पॉपअप खोलने मेरी कॉड है।

$('#btnAddCharge').on('click', function (event) { 
     event.preventDefault(); 
     var actionURL = '@Url.Action("Edit", "Charges", new { Id = 0, @ticketId = @TicketId, UserId = UserId })'; 

     $(dialogBox).dialog({ 
      autoOpen: false, 
      resizable: false, 
      title: 'Edit', 
      modal: true, 
      show: "blind", 
      width: 'auto', 
      hide: "blind", 
      open: function (event, ui) { 
       $(this).load(actionURL, function (html) { 
        $('form', html).submit(function() { 
         $.ajax({ 
          url: this.action, 
          type: this.method, 
          data: $(this).serialize(), 
          success: function (res) { 
           if (res.success) { 
            $(dialogBox).dialog('close'); 
           } 
          } 
         }); 
         return false; 
        }); 
       }); 
      } 
     }); 

     $(dialogBox).dialog('open'); 
    }); 
+0

क्या आप पॉपअप में फॉर्म को गतिशील रूप से लोड कर रहे हैं (उदाहरण के लिए AJAX का उपयोग कर रहे हैं?) –

+1

@StephenMuecke हाँ मैं AJAX – ARC

+0

का उपयोग कर रहा हूं आपको सत्यापनकर्ता को दोबारा पोस्ट करना होगा। उत्तर देने के लिए आपको अपनी स्क्रिप्ट दिखाना होगा (इसे शामिल करने के लिए प्रश्न संपादित करें)। –

उत्तर

13

पृष्ठ प्रारंभ में लोड होने पर सत्यापनकर्ता को पार्स किया जाता है। जब आप गतिशील सामग्री जोड़ते हैं तो आपको सत्यापनकर्ता को दोबारा पोस्ट करने की आवश्यकता होती है। अपनी स्क्रिप्ट को संशोधित निम्नलिखित पंक्तियों को शामिल कर सामग्री

$(this).load(actionURL, function (html) { 
    // Reparse the validator 
    var form = $('form'); 
    form.data('validator', null); 
    $.validator.unobtrusive.parse(form); 
    $('form', html).submit(function() { 
     .... 

साइड नोट लोड किया जाता है के बाद: कोड आप से पता चला है @Html.ValidationMessageFor(m => m.MaterialCode) शामिल नहीं है, लेकिन मैं यह भी शामिल है मान लेते हैं।

+0

आपको बहुत धन्यवाद स्टीफन म्यूके .... यह मेरी समस्या हल – ARC

संबंधित मुद्दे