ASP.NET Mvc 2, Как Вы запускаете клиентскую проверку из JavaScript?

Есть ли функция для ASP.NET MVC 2, созданного в аннотировании данных проверка JavaScript, которая выполняет функциональность JQuery. isValid Validate ()?

Я хотел бы проверить, допустимы ли мои поля до использования jQuery ajax для отправки данных в сервер? Какие-либо предложения?

Спасибо.

9
задан gt124 28 June 2010 в 20:13
поделиться

8 ответов

Как предполагают basilmir и Dom Ribaut, вы должны получить это автоматически, если вы используете EnableClientValidation(). Однако, если вы хотите вручную вызвать проверку MVC на стороне клиента, вы можете использовать:

if (!Sys.Mvc.FormContext.getValidationForForm($("#myform").get(0)).validate('submit').length) {
  // is valid
}

Вы можете заменить $("#myform").get(0) элементом DOM для вашей формы.

1
ответ дан 5 December 2019 в 01:42
поделиться

Похоже, в MicrosoftMvcJQueryValidation.js нет ничего особенного, кроме регистрации правил для плагина jquery.validate.js.

У меня сработало:

<script type="text/javascript">

    function validateForm(formId)
    {
       var valid = $("#" + formId).validate().form();
       return valid;
    }

</script>
0
ответ дан 5 December 2019 в 01:42
поделиться

Скотт Гух пошагово описывает простую проверку js в этом сообщении: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net- mvc-2-model-validation.aspx (ищите шаг 3).
Это не JQuery, но разве это не соответствует вашим потребностям?

-
Дом

0
ответ дан 5 December 2019 в 01:42
поделиться

Взгляните на xval . Он позволяет вам определять свои правила проверки либо с помощью атрибутов аннотации данных, либо атрибутов проверки замка (я думаю, что проверка nhibernate также была недавно добавлена). Затем проверка преобразуется в правила проверки клиента, и вы можете проверить форму с помощью ajax, чтобы не было обратной передачи на сервер.

Со страницы проекта: xVal - это среда проверки для приложений ASP.NET MVC. Это позволяет легко связать ваш выбор механизма проверки на стороне сервера с выбранной вами библиотекой проверки на стороне клиента, аккуратно вписываясь как в архитектуру ASP.NET MVC, так и в соглашения.

Если вам нужны только механизмы проверки для asp.net mvc, взгляните на this и this

0
ответ дан 5 December 2019 в 01:42
поделиться

Jquery будет вашим лучшим другом

проверьте этот http://bassistance.de/jquery-plugins/jquery-plugin-validation/

документ ссылка:http://docs.jquery.com/Plugins/Validation

0
ответ дан 5 December 2019 в 01:42
поделиться

Вы можете включить проверку на стороне клиента с помощью <% Html.EnableClientValidation (); %> Он автоматически сгенерирует весь код javascript, необходимый для проверки на стороне сервера для работы на стороне клиента. Не забудьте по-прежнему проверять на стороне сервера , поскольку клиент может обойти javascript и отправить неверные данные. Не используйте только проверку на стороне клиента.

<% Html.EnableClientValidation(); %>
<%= Html.ValidationSummary() %>
<% using (Html.BeginForm()) {%>

    <%=Html.EditorForModel() %>     
        <p>
            <input type="submit" value="Save" />
        </p>
<% } %>
0
ответ дан 5 December 2019 в 01:42
поделиться

вот простая программа, которая поможет выполнить проверку формы на стороне клиента в 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

Теперь вы получите форму с правильной проверкой.

Надеюсь, это вам поможет

0
ответ дан 5 December 2019 в 01:42
поделиться

я использовал:
http://geekswithblogs.net/stun/archive/2010/02/27/asp.net-mvc -client-side-validation-summary-with-jquery-validation-plugin.aspx
, и у меня это отлично сработало, особенно вам не нужно менять исходный способ проверки Mvc (я имею в виду поле проверки), вы просто делаете его на стороне клиента

2
ответ дан 5 December 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: