Как мне установить значение ползунка jquery при загрузке, если оно уже установлено

#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,
.
.
.