2016-08-26 6 views
-1

Я новичок в программировании вообще и в jQuery в частности. Я строй проекта ASP MVC, который использует следующий плагин для рейтинга звезды системы:Возвращаемые (скрытые?) Значения из jquery

https://github.com/kartik-v/bootstrap-star-rating

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

  <div class="form-group"> 
       @Html.LabelFor(model => model.Rating, htmlAttributes: new { @class = "control-label col-md-2" }) 
       <div class="col-md-10"> 
        <span class="star"> 
         <input id="input-id" type="radio" value="alert($('input#input-id').val())" class="rating" data-size="lg"> 
        </span> 
       </div> 
      </div> 
      <div class="form-group"> 
       <div class="col-md-offset-2 col-md-10"> 
        <input type="submit" value="Save" class="btn btn-default" /> 
       </div> 
      </div> 
     </div> 
} 
    <div> 
     @Html.ActionLink("Back to List", "Index") 
    </div> 
    <link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet"> 
    <link href="~/Content/star-rating.css" media="all" rel="stylesheet" type="text/css" /> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.js"></script> 
    <script src="~/Scripts/star-rating.js" type="text/javascript"></script> 
    <link href="~/Content/theme-krajee-svg.css" media="all" rel="stylesheet" type="text/css" /> 
    <script src="~/Scripts/theme-krajee-svg.js"></script> 

    @section Scripts { 
     @Scripts.Render("~/bundles/jqueryval") 

    } 

Когда я проверить HTML после загрузки страницы, я могу видеть, что изменения плагина:

<input id="input-id" type="radio" value="alert($('input#input-id').val())" class="rating" data-size="lg"> 

To:

<input id="input-id" type="radio" value=//whatever user rates class="rating hide" data-size="lg"> 

Так это похоже, я возвращаю какой-то скрытый ввод? Я читал эту ссылку, но ничего не получалось:

jQuery access input hidden value

я должен делать что-то неправильно. Любая помощь будет оценена этим новичком!

+0

'value = // любые пользовательские тарифы' - буквально это? –

+0

Нет. Извините, что неясно. Значение будет тем, на что нажимает пользователь. – Pennywise

ответ

0

На самом деле это не hidden поля, но это только radio поля и плагин, который вы используете для звездочек добавляет hide класса к нему, так что не видно, но если вы хотите, чтобы получить значение этого тогда вы можете использовать,

$('input#input-id').val(); 

но не в атрибуте value вместо этого вы должны использовать его в форме представления или в коде, когда вы отправляете данные на сервер.

0

Вы можете вызвать его на onChange функции и получить значение input, как показано ниже:

$("#input-id").change(function() { 
    var atrvalue = $(this).attr('value'); // get the value 
    alert(atrvalue); 
}); 

проверить эту fiddle для демонстрации.

0

Решение на самом деле было очень простым. Все, что мне нужно было сделать, это добавить атрибут name = «Rating» и изменить «type» с радио на номер (текст тоже работает). Вот пересмотренная строка, которая работает для меня:

<input id="input-id" type="number" value="1" class="rating" data-size="lg" name="Rating"> 
Смежные вопросы