我是一般编程和jquery的新手。我正在构建一个ASP MVC项目,该项目使用以下插件进行星级评分系统:
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">
要:
<input id="input-id" type="radio" value=//whatever user rates class="rating hide" data-size="lg">
所以看起来我可能正在返回某种类型的隐藏输入?我读了这个链接,但没有任何效果:
jQuery access input hidden value
我一定是做错了。这位新手会非常感谢任何帮助!
答案 0 :(得分:0)
实际上它不是hidden
字段,但它只是radio
字段,而您用于星级的插件会为其添加hide
类,因此它不可见,但如果你想获得它的价值,那么你可以使用,
$('input#input-id').val();
但不在其value
属性中,而是在将数据发布到服务器时,需要在表单提交或代码中使用它。
答案 1 :(得分:0)
您可以在onChange
函数上调用它,并获得input
的值,如下所示:
$("#input-id").change(function () {
var atrvalue = $(this).attr('value'); // get the value
alert(atrvalue);
});
查看此fiddle了解演示。
答案 2 :(得分:0)
解决方案实际上非常简单。我所要做的就是添加一个name =“Rating”属性,并将“type”从radio改为number(text也可以)。以下是适合我的修订版本:
<input id="input-id" type="number" value="1" class="rating" data-size="lg" name="Rating">