MVC 3 не могу отключить ненавязчивый JavaScript - PullRequest
2 голосов
/ 24 ноября 2010

Я внедряю новый ненавязчивый javascript в моем проекте mvc 3 (используя RC1).Я добавил 3 обязательных сценария на «главную» страницу макета.Все работает хорошо.

Однако у меня есть представление, где я хочу использовать обычную проверку jquery для проверки текстового поля.Чтобы быть точным, я хочу проверить, что запись существует, и что она числовая.

Итак, на этой странице мой js выглядит так ...

<script language="javascript" type="text/javascript">
$(document).ready(function(){
    $('#SomeForm').validate({
        errorClass: "field-validation-error",
        validClass: "field-validation-none",
        errorElement: "label",
        rules: {
            ItemCount: {
                required: true,
                number: true
            }
        },
        messages: {
            ItemCount: {
                required: "Please specify the number of items available",
                number: "Please specify a valid number"
            }
        }
    });
});

Однако это не сработало.Итак, на моей главной странице макета я закомментировал ссылку на файл jquery.validate.unobtrusive.min.js, и эй до того, как это сработало.

Итак, я подумал, что что-то нужно делать с ненавязчивыми частямитак что, если я выключу его (что я прочитал, что вы можете) все будет хорошо.

Итак, на странице просмотра я добавил следующую строку

Html.EnableUnobtrusiveJavaScript(false);

Но нетрадость.Единственный способ заставить его работать - это удалить ссылку на ненавязчивый js-файл.

Конечно, это не так.Должно быть, я тупой, верно?

Спасибо D

Ответы [ 4 ]

6 голосов
/ 24 ноября 2010

jquery.validate.unobtrusive.min.js уже регистрирует функцию validate в форме, которая конфликтует с вашей. Поэтому вместо вызова функции validate вы можете попробовать добавить правила .

$("#myinput").rules("add", {
    required: true,
    minlength: 2,
    messages: {
        required: "Required input",
        minlength: jQuery.format("Please, at least {0} characters are necessary")
    }
});
1 голос
/ 25 ноября 2010

Я думаю, что новый ненавязчивый адаптер jQUery разработан таким образом, что вы можете либо включить его полностью, либо нет, вы не можете условно включить / отключить его для определенного вида.

0 голосов
/ 24 ноября 2010

Попробуйте зайти в web.config и найти это:

  <appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

И установите UnobtrusiveJavaScriptEnabled в false.Может быть еще несколько ключей с ним.

0 голосов
/ 24 ноября 2010

На какой версии MVC3 вы работаете: CTP, Beta или RC? Он отлично работает для меня в RC, используя Razor. Пожалуйста, оставьте код с видом.

...