Есть ли функция для ASP.NET MVC 2, созданного в аннотировании данных проверка JavaScript, которая выполняет функциональность JQuery. isValid Validate ()?
Я хотел бы проверить, допустимы ли мои поля до использования jQuery ajax для отправки данных в сервер? Какие-либо предложения?
Спасибо.
Как предполагают basilmir и Dom Ribaut, вы должны получить это автоматически, если вы используете EnableClientValidation(). Однако, если вы хотите вручную вызвать проверку MVC на стороне клиента, вы можете использовать:
if (!Sys.Mvc.FormContext.getValidationForForm($("#myform").get(0)).validate('submit').length) {
// is valid
}
Вы можете заменить $("#myform").get(0)
элементом DOM для вашей формы.
Похоже, в MicrosoftMvcJQueryValidation.js нет ничего особенного, кроме регистрации правил для плагина jquery.validate.js.
У меня сработало:
<script type="text/javascript">
function validateForm(formId)
{
var valid = $("#" + formId).validate().form();
return valid;
}
</script>
Скотт Гух пошагово описывает простую проверку js в этом сообщении: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net- mvc-2-model-validation.aspx (ищите шаг 3).
Это не JQuery, но разве это не соответствует вашим потребностям?
-
Дом
Взгляните на xval . Он позволяет вам определять свои правила проверки либо с помощью атрибутов аннотации данных, либо атрибутов проверки замка (я думаю, что проверка nhibernate также была недавно добавлена). Затем проверка преобразуется в правила проверки клиента, и вы можете проверить форму с помощью ajax, чтобы не было обратной передачи на сервер.
Со страницы проекта: xVal - это среда проверки для приложений ASP.NET MVC. Это позволяет легко связать ваш выбор механизма проверки на стороне сервера с выбранной вами библиотекой проверки на стороне клиента, аккуратно вписываясь как в архитектуру ASP.NET MVC, так и в соглашения.
Если вам нужны только механизмы проверки для asp.net mvc, взгляните на this и this
Jquery будет вашим лучшим другом
проверьте этот http://bassistance.de/jquery-plugins/jquery-plugin-validation/
документ ссылка:http://docs.jquery.com/Plugins/Validation
Вы можете включить проверку на стороне клиента с помощью <% Html.EnableClientValidation (); %> Он автоматически сгенерирует весь код javascript, необходимый для проверки на стороне сервера для работы на стороне клиента. Не забудьте по-прежнему проверять на стороне сервера , поскольку клиент может обойти javascript и отправить неверные данные. Не используйте только проверку на стороне клиента.
<% Html.EnableClientValidation(); %>
<%= Html.ValidationSummary() %>
<% using (Html.BeginForm()) {%>
<%=Html.EditorForModel() %>
<p>
<input type="submit" value="Save" />
</p>
<% } %>
вот простая программа, которая поможет выполнить проверку формы на стороне клиента в JavaScript.
Name : <asp:TextBox ID="txtName" />
Email : <asp:TextBox ID="txtEmail" />
Web URL : <asp:TextBox ID="txtWebUrl" />
Zip : <asp:TextBox ID="txtZip" />
<asp:Button ID="btnSubmit" OnClientClick=" return validate()" runat="server" Text="Submit" />
Now on the source code of this form in script tag write the following code:
<script language="javascript" type="text/javascript">
function validate()
{
if (document.getElementById("<%=txtName.ClientID%>").value=="")
{
alert("Name Feild can not be blank");
document.getElementById("<%=txtName.ClientID%>").focus();
return false;
}
if(document.getElementById("<%=txtEmail.ClientID %>").value=="")
{
alert("Email id can not be blank");
document.getElementById("<%=txtEmail.ClientID %>").focus();
return false;
}
var emailPat = /^(\".*\"|[A-Za-z]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z]\w*(\.[A-Za-z]\w*)+)$/;
var emailid=document.getElementById("<%=txtEmail.ClientID %>").value;
var matchArray = emailid.match(emailPat);
if (matchArray == null)
{
alert("Your email address seems incorrect. Please try again.");
document.getElementById("<%=txtEmail.ClientID %>").focus();
return false;
}
if(document.getElementById("<%=txtWebURL.ClientID %>").value=="")
{
alert("Web URL can not be blank");
document.getElementById("<%=txtWebURL.ClientID %>").value="http://"
document.getElementById("<%=txtWebURL.ClientID %>").focus();
return false;
}
var Url="^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"
var tempURL=document.getElementById("<%=txtWebURL.ClientID%>").value;
var matchURL=tempURL.match(Url);
if(matchURL==null)
{
alert("Web URL does not look valid");
document.getElementById("<%=txtWebURL.ClientID %>").focus();
return false;
}
if (document.getElementById("<%=txtZIP.ClientID%>").value=="")
{
alert("Zip Code is not valid");
document.getElementById("<%=txtZIP.ClientID%>").focus();
return false;
}
var digits="0123456789";
var temp;
for (var i=0;i<document.getElementById("<%=txtZIP.ClientID %>").value.length;i++)
{
temp=document.getElementById("<%=txtZIP.ClientID%>").value.substring(i,i+1);
if (digits.indexOf(temp)==-1)
{
alert("Please enter correct zip code");
document.getElementById("<%=txtZIP.ClientID%>").focus();
return false;
}
}
return true;
}
</script>
And in code behind file just write the below code.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
btnSubmit.Attributes.Add("onclick", "return validate()")
End Sub
Теперь вы получите форму с правильной проверкой.
Надеюсь, это вам поможет
я использовал:
http://geekswithblogs.net/stun/archive/2010/02/27/asp.net-mvc -client-side-validation-summary-with-jquery-validation-plugin.aspx
, и у меня это отлично сработало,
особенно вам не нужно менять исходный способ проверки Mvc (я имею в виду поле проверки), вы просто делаете его на стороне клиента