Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.03.2017, 02:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от biryukovm
Неужеди никто подсказать не может
А оценки, это обязательные условия?
Ответить с цитированием
  #12 (permalink)  
Старый 20.03.2017, 11:14
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Конечно
Ответить с цитированием
  #13 (permalink)  
Старый 20.03.2017, 11:35
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Видимо меня не правильно поняли, стили на звездочках сохраняются как и параметр radio checked
У меня это все работает, но мне нужно знать следующее
если он укажить хоть один из рейтинга ниже 3 звезд то должен появиться <textarea></textarea> и туда описать причину недовольства.
А у меня проблема такая что рейтинг работает а вот отпределить все парарметры где рейтинг ниже 3х не могу,
Можно конечно считывать и так
$("input:radio[name=option]:checked").val()
но оно работает только после нескольких нажатий

А мне нужно знать значение всех рейтингов которые будут и потом определять есть ли в одном их них меньше 3
Ответить с цитированием
  #14 (permalink)  
Старый 20.03.2017, 11:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если оценка (оценки) есть условие обязательное и их элементы управления, это только часть некой формы со множеством других полей, значит лучше этим оценкам определить значения по умолчанию, чем мурыжить форму различными проверками.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>
@font-face {
  font-family: 'FontAwesome';
  src: url('http://fontawesome.io/assets/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0');
  src: url('http://fontawesome.io/assets/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), 
  url('http://fontawesome.io/assets/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), 
  url('http://fontawesome.io/assets/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), 
  url('http://fontawesome.io/assets/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), 
  url('http://fontawesome.io/assets/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
input, #cause {
    display: none;
}
.text-center {
    direction: rtl;
    text-align: left;
    color: #D9A41D;
    font-size: 22px;
    cursor: pointer;
}
.text-center > label:before {
    content: "\f006";
}
.text-center > .fa-star:before,
.text-center > label:hover:before,
.text-center > label:hover ~ label:before {
   content: "\f005";
}
</style> 
<script> 
function setRate(e) {
    var a = e.target || e.srcElement, b = document.querySelector('#cause'), c = b.querySelector('textarea');
    if(a.tagName=="INPUT") {
        [].slice.call(a.parentNode.querySelectorAll('label')).reverse().forEach(function(e, i) {
            a.value > i ? e.classList.add('fa-star') : e.classList.remove('fa-star');
        });
        if(a.value < 3 || document.querySelector('input:not([name='+a.name+']):checked').value < 3) {
            b.style.display = 'block';
            c.name = b.id;
            c.required = true;
        } else {
            b.style.display = 'none';
            c.name = '';
            c.required = false;
        }
    }
}
</script> 
</head>
<form autocomplete="off">
<body>
<label>Оценить сервис:</label>
<div class="text-center" onclick="setRate(event)">
<input id="s1" name="service" value="1" type="radio" />
<input id="s2" name="service" value="2" type="radio" />
<input id="s3" name="service" value="3" type="radio" checked="" />
<input id="s4" name="service" value="4" type="radio" />
<input id="s5" name="service" value="5" type="radio" />
<label for="s5" class="fa btn btn-default"></label>
<label for="s4" class="fa btn btn-default"></label>
<label for="s3" class="fa fa-star btn btn-default"></label>
<label for="s2" class="fa fa-star btn btn-default"></label>
<label for="s1" class="fa fa-star btn btn-default"></label>
</div>

<label>Оценить качество:</label>
<div class="text-center" onclick="setRate(event)">
<input id="q1" name="quality" value="1" type="radio" />
<input id="q2" name="quality" value="2" type="radio" />
<input id="q3" name="quality" value="3" type="radio" checked="" />
<input id="q4" name="quality" value="4" type="radio" />
<input id="q5" name="quality" value="5" type="radio" />
<label for="q5" class="fa btn btn-default"></label>
<label for="q4" class="fa btn btn-default"></label>
<label for="q3" class="fa fa-star btn btn-default"></label>
<label for="q2" class="fa fa-star btn btn-default"></label>
<label for="q1" class="fa fa-star btn btn-default"></label>
</div>

<div id="cause">
<label>Причина:</label><br />
<textarea></textarea>
</div>
</form>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение функции при переходе на вкладку oopros Общие вопросы Javascript 7 21.09.2016 21:48
При вызове локальной функции объекта не могу использовать свойства объекта Gudsaf Общие вопросы Javascript 7 17.09.2016 20:23
Передача дополнительных аргументов при вызове функции James Brown Общие вопросы Javascript 1 05.09.2016 09:27
Автоматический вызов функции при загрузке страницы DVMade Элементы интерфейса 2 02.03.2015 21:25
установить переменную сессии через ajax при загрузке страницы optik77 AJAX и COMET 3 02.06.2011 17:36