【发布时间】:2016-04-07 15:38:16
【问题描述】:
我正在使用 ASP.net MVC。我在视图中有三个 jquery 滑块
<div class="slider" data-hiddenfield="amount" style="width:200px;"></div>
以及随附的隐藏 html 字段,其值将保存到 db。
@Html.HiddenFor(model => model.fear, new { @id = "cvar" })
@Html.HiddenFor(model => model.control, new { @id = "cvar" })
@Html.HiddenFor(model => model.danger, new { @id = "dvar" })
是否可以在提交表单之前使用相同的 Javascript 代码并将滑块的值动态保存到所有三个隐藏字段?
滑块Javascript:
$(document).ready(function () {
$(function () {
$(".slider").slider({
orientation: "Horizontal",
range: "min",
min: 0,
max: 100,
value: 60,
slide: function (event, ui) {
$("#cvar").val(ui.value); //to be saved to hidden field
var g = parseInt(ui.value <= 50 ? 255 : 255 - ((ui.value - 50) * (255 / 50)));
var r = parseInt(ui.value >= 50 ? 255 : 255 - ((50 - ui.value) * (255 / 50)));
$(".ui-widget-header").css("background", "rgb(" + r + "," + g + ",0)");
},
create: function (event, ui) {
$(".ui-widget-header").css("background", "rgb(255, 200 ,0)");
}
});
});
【问题讨论】:
-
您只需要一个 document.ready 处理程序;你可以安全地删除
$(document).ready(function () { -
注明。最后一件事,由于用户可能选择将滑块保留为其默认值,除了使用 startPos 和 endPos 并计算最后的差异之外,还有更简单的方法吗?
-
最简单的方法是默认隐藏字段的值以匹配滑块,在本例中为
60。 -
刚刚安排好了 - 工作:) 谢谢
标签: javascript jquery asp.net-mvc razor