从jquery返回(隐藏?)值

时间:2016-08-26 04:24:30

标签: javascript jquery html

我是一般编程和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

我一定是做错了。这位新手会非常感谢任何帮助!

3 个答案:

答案 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">