16

मैं दूरदराज के सत्यापन के लिए कुछ इसी तरह कर रहा हूँ पर विनीत सत्यापन त्रुटि सेट सिवाय इसके कि मैं पहले से ही jQuery और सेटअप जो कुछ भी मैं सेटअप करने के लिए किया था के माध्यम से मैन्युअल मेरी कॉल करते हैं।मैन्युअल, एक पाठ बॉक्स

अब मेरी समस्या यह है, अगर मैं (,, आदि और प्रस्तुत करने से रोकता है पेज पाठ बॉक्स पर प्रकाश डाला) सत्यापनकर्ता है कि एक विशेष पाठ बॉक्स मान्य नहीं है बताना चाहता हूँ। मैं कोड से यह कैसे करूं?

@Html.LabelFor(m => Model.Slug) 
@Html.TextBoxFor(m => Model.Slug) 
<span id="UrlMsg" class="field-validation-error" style="display: none;"></span> 

if (error) { 
     $('#UrlMsg').html('This name is already in use.').fadeIn('fast'); 
     //what should I do here for the rest of the validation? 
} 

उत्तर

48

सबसे पहले, आप एक सत्यापन सारांश जोड़ सकते हैं:

@Html.ValidationMessageFor(m => m.Slug) 

तो आप मैन्युअल रूप से .showError विधि के साथ jQuery मान्यता/विनीत मान्यता को गति प्रदान कर सकते हैं। यहाँ एक नमूना है:

var errorArray = {}; 
errorArray["Slug"] = 'Some error message for the Slug text box'; 
$('#SomeFormId').validate().showErrors(errorArray); 
+2

धन्यवाद संभोग यह मैं सिर्फ क्या जरूरत है, एक आकर्षण की तरह काम करता है! – Rob

+1

लेकिन विधि मान्य करता है, तो त्रुटियों की तरह इस $ ('# SomeFormId') सच = मैन्युअल रूप से जोड़ा जाता है? –

1

तुम भी कर सकते हैं:

@Html.ValidationMessageFor(m => m.Slug) 

अपने कोड में इस कार्यप्रणाली के साथ:

function setError(id, message) { 
     var span = $("span[data-valmsg-for=\"" + id + "\"]"); 
     if (span && span.length > 0) { 
      $(span).html(message); 
      if (message && message != "") { 
       $(span).removeClass("field-validation-valid"); 
       $(span).addClass("field-validation-no-valid"); 
      } else { 
       $(span).removeClass("field-validation-no-valid"); 
       $(span).addClass("field-validation-valid"); 
      } 
     } 
    } 

फिर सेट कर सकते हैं त्रुटि

setError("Slug", "errorMsg"); 
संबंधित मुद्दे