#jquery #asp.net #jquery-ui
#jquery #asp.net #jquery-ui
Вопрос:
У меня есть ползунок jquery и текстовое поле, в котором хранится значение. Я запускаю asp.net приложение и хотите загрузить текстовое поле со значением, если оно уже сохранено, и чтобы ползунок отражал это значение. Я думаю, что это сделает простой оператор if в jquery, но я не знаком с этой функцией.
Вот мой текущий jquery:
$("#cultureSlider").slider({
value: 50,
min: 1,
max: 100,
step: 1,
slide: function (event, ui) {
$(".cultureScore").val("" ui.value);
}
});
Я бы подумал, что что-то подобное сработает (но это не так):
$("#cultureSlider").slider({
if($(".cultureScore").val() == 50){
value: 50,
} else {
value: $(".cultureScore").val(),
}
min: 1,
max: 100,
step: 1,
slide: function (event, ui) {
$(".cultureScore").val("" ui.value);
}
});
Комментарии:
1. Если
.cultureScore
равно 50, вы устанавливаете для него значение.cultureScore
, а если нет, вы делаете то же самое? Я думаю, вы делаете это более сложным, чем это должно быть.2. Проверяя, равно ли оно 50, я проверяю, является ли значение значением по умолчанию или это значение, которое я загрузил в текстовое поле.
Ответ №1:
Я почти уверен if
, что оператор недействителен там, где он у вас есть, и я думаю, что ваша проверка в любом случае избыточна, независимо от того, будут ли if
результаты TRUE
или FALSE
вы всегда будете использовать $(".cultureScore").val()
:
$("#cultureSlider").slider({
value: $(".cultureScore").val(),
min: 1,
max: 100,
step: 1,
slide: function (event, ui) {
$(".cultureScore").val("" ui.value);
}
});
Ответ №2:
Я думаю, что ваш синтаксис неправильный… попробуйте либо встроенное if (забыл технический термин), либо выполнить вычисление вне экземпляра ползунка.
Способ первый
$("#cultureSlider").slider({
value: ($(".cultureScore").val() == 50 ? 50 : $(".cultureScore").val()),
min: 1,
max: 100,
step: 1,
slide: function (event, ui) {
$(".cultureScore").val("" ui.value);
}
});
Способ второй
var scoreVal = 0;
if($(".cultureScore").val() == 50)
scoreVal = 50;
else
scoreVal = $(".cultureScore").val();
$("#cultureSlider").slider({
value: scoreVal,
min: 1,
max: 100,
step: 1,
slide: function (event, ui) {
$(".cultureScore").val("" ui.value);
}
});
Комментарии:
1. Это называется троичным оператором 🙂
2. @Clive спасибо! Я просто не мог вспомнить это на всю жизнь: P
Ответ №3:
Почему бы не сделать это:
var myVal = ($(".cultureScore").val() == 50) ? 50 : $(".cultureScore").val();
$("#cultureSlider").slider({
value: myVal,
.
.
.