私はASP.net MVCを使用しています。ビュー内に3つのjqueryスライダがあります。複数の非表示フィールドをビューに保存
<div class="slider" data-hiddenfield="amount" style="width:200px;"></div>
と値がdbに保存される非表示のhtmlフィールドがあります。
@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コードを使用すると、フォームの送信前に、すべての3つの非表示フィールドに動的にスライダーの値を保存することは可能ですか?
スライダー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)");
}
});
});
1つのdocument.readyハンドラが必要です。あなたは安全に '$(document).ready(function(){' –
を削除することができます。ユーザーがスライダをデフォルト値のままにしておくことができるので、startPosとendPosを使用したほうが簡単です。最後に差分を計算する –
最も簡単な方法は、隠しフィールドの値をデフォルトのスライダ(この場合は「60」)に設定することです。 –