Vidar
Vidar

Reputation: 6673

MVC3 and validating a mixture of Razor and jQuery plugins

I am using MVC3 and my view has a mixture of razor and raw html in my view e.g.

<div class="editor-field">
     @Html.EditorFor(model => model.PAGE)
     @Html.ValidationMessageFor(model => model.PAGE)
</div>


<div class="editor-label">
     @Html.LabelFor(model => model.PERIODICAL)
</div>
     div class="editor-field">
     <div class="editor-field">
          <input type="text" id="periodicallist" name="tiperiodical" />
     </div>
</div>

My JavaScript applies the tokenInput control plugin to the textbox and its all fine, but I wonder how I can validate this (i.e. for empty textbox/tokenInput), it needs to filled with at least 1 token. At the moment it's confusing having these two forms of creating a view, letting Razor constuct elements direct from the model, and then adding more complexity/cusomization by usin jQuery plugins etc.

Can anyone advise how I can validate jQuery plugins on posting back to the controller?

Cheers

Upvotes: 0

Views: 224

Answers (1)

VJAI
VJAI

Reputation: 32768

If you are using unobtrusive validation then you all have to do is add the necessary HTML5 data attributes to the input elements from javascript and microsoft's unobtrusive javascript library will take care of the rest.

For ex. if you have dynamically injected a textbox into the form through javascript and you need to perform required validation then all you have to add the data-val and data-val-required attributes as below.

<input data-val="true" 
       data-val-required="No. of joinees is required" 
       name="NoOfJoinees" 
       type="text"  />

EDIT:

To display the validation error message you have to inject a span near to the field,

<span class="field-validation-valid" 
      data-valmsg-for="NoOfJoinees" 
      data-valmsg-replace="true">
</span>

Upvotes: 1

Related Questions