2015-08-18 3 views
-1

У меня есть поле interger, что я хочу, чтобы мои пользователи только быть в состоянии выбрать между числами 1 и 10. Таким образом, в настоящее время я использую атрибут Range в модели:Limit ИНТ поле зрения MVC

[Range(1, 10)] 
public int NumberOfExtensions { get; set; } 

Однако я хочу, чтобы представление не позволяло номеру идти ниже 1 и выше 10. Это для меня было бы лучшим пользовательским интерфейсом.

Вот мой взгляд код:

</div> 
     <div class="col-md-1"> 
      @Html.EditorFor(model => model.NumberOfExtensions) 
      @Html.ValidationMessageFor(model => model.NumberOfExtensions) 
     </div> 
</div> 

Brroshan ниже рекомендуемого я использую Javascript. Это немного ближе к тому, что я хочу. Теперь я пытаюсь изменить его, чтобы числа не выходили за пределы желаемого диапазона. Это то, что я пытался, и это не работает:

<script type="text/javascript"> 

     $(function() { 

      $("#@Html.IdFor(s => s.NumberOfExtensions)").on("input", function() 
      { 
       if ($(this).val() < 1) 
       { 
        $(this).val() = 1 
       } 
       else if ($(this).val() > 10) 
       { 
        $(this).val() = 10 
       } 
      }); 

     }); 

    </script> 

Хочу остановиться на # 1 и на # 10 - не дают ошибку.

+0

Изменение '$ (это) .val() = 1 'в' $ (это) .val (1) 'и' .val (10) ', то вы» сброс. – brroshan

ответ

0

Вы можете использовать JavaScript/JQuery для проверочного минимального и максимального допустимого значения элемента.

Попробуйте это:

<div class="col-md-1"> 
    @Html.EditorFor(model => model.NumberOfExtensions) 
    @Html.ValidationMessageFor(model => model.NumberOfExtensions) 
</div> 

@section scripts{ 
<script type="text/javascript"> 

    $(function() { 

     $("#@Html.IdFor(s => s.NumberOfExtensions)") 
     .on("input",function() { 

      if ($(this).val() < 0 || $(this).val() > 10) { 
       alert("Cannot be less than 0 or more than 10"); 
       $(this).val(""); 
      } 
     }); 

    }); 

</script> 

} 
+0

brroshan, я раньше не использовал javascript в своих проектах. Смогу ли я заменить поле? или поместить это в секцию сценария внизу? или что-то совершенно другое? – djblois

+0

Он входит в '@section scripts {}', если у вас '@RenderSection (" scripts ", required: false)' в вашем '_Layout.cshtml' внутри общей папки вашей папки' Views' – brroshan

+0

ty brroshan. Это почти то, что мне нужно. Я обновил свой оригинальный вопрос с дополнительной информацией. – djblois

Смежные вопросы