Вытащить val()
Добрый вечер проблема следующая.
Есть код $(document).ready(function(){ $('#verify').click(function(event){ event.preventDefault(); this.disabled=true; answer = $('input:radio:checked').val(); id = $('#id').val(); question_id = $('#question_id').val(); $.ajax({ type:"POST", url:"verify_answer.php", data:"answer=" + answer + "&id=" + id + "&question_id=" + question_id, success:function(response){ $("Тут состоит проблема").css("background",response); } }) }); }); Смысл его таков - при клике на кнопку - отправляется ajax запрос и в response - идет ответ либо red либо green. Есть вот такая форма echo "<form action='take_test.php?' method='GET'>" . "<input type='hidden' name='id' value='$this->id' id='id'>" . "<input type='hidden' name='question_id' value='$question_id' id='question_id'>"; shuffle($question->answers); $i = 0; foreach ($question->answers as $answers) { echo "<div class='answers'>"; echo "<input type='radio' name='answer' value='" . $answers . "'checked>" . $answers; echo "<br />"; echo "</div>"; } echo "<input type='submit' value='Проверить' id='verify'>"; echo "<input type='submit' value='$submit'>" . "</form>"; В ней есть вопрос и 4 ответа в тегах radio смысл ajax запроса в том, что-бы он проверил выбранный ответ и подсветил его или red или green, зависит от правильности ответа. Все работает кроме одного но, проблема следующая, я знаю как подсветить все ответы red или green(на функции все понятно) Но я не знаю как подсветить именно checked p.s. тему неправильно назвал, но пока не нашел где можно сделать ренейм) |
eskize,
не очень понятно -- значение отмеченного вы взять и отправить смогли а подсветить его проблема? |
Ну беру его я таким способом
$('тут наше значение').val() А как к этому добавить .css()? |
eskize,
var b = $('тут наше значение'); b.val() b.css() |
name = $("input:radio:checked") у нас значение получается
name.css() - Не пашет name.val() - пашет |
Цитата:
|
$(document).ready(function(){ $('#verify').click(function(event){ event.preventDefault(); this.disabled=true; answer = $('input:radio:checked').val(); id = $('#id').val(); question_id = $('#question_id').val(); $.ajax({ type:"POST", url:"verify_answer.php", data:"answer=" + answer + "&id=" + id + "&question_id=" + question_id, success:function(response){ $("input:radio:checked").css("background",response); } }) }); }); в response - либо red либо green, если поставить просто какой-то див - все хорошо подсвечивает, но если я подставлю див - мне подсветит все ответы, а не тот который был выбран. Конечно можно сделать несколько дивов - но думаю есть более корректное решение. |
eskize,
:-? $(document).ready(function(){ $('#verify').click(function(event){ event.preventDefault(); this.disabled=true; var b = $('input:radio:checked'), answer = b.val(), id = $('#id').val(), question_id = $('#question_id').val(); $.ajax({ type:"POST", url:"verify_answer.php", data:"answer=" + answer + "&id=" + id + "&question_id=" + question_id, success:function(response){ b.css("background",response); } }) }); }); |
Не вижу разницы в b.css между $("Input:radio:checked").css
Не подсвечивает так. И я понял почему, потому-что оно выбирает только input radio, а не текст возле него. Как мне выбрать текст возле него? Текст возле него идентичен b.val() |
Цитата:
Цитата:
|
foreach ($question->answers as $answers) { echo "<div class='answers'>"; echo "<input type='radio' name='answer' value='" . $answers . "'checked>" . $answers; echo "<br />"; echo "</div>"; } https://www.dropbox.com/s/5poo3wzcni...2023.24.42.png |
eskize,
c html значит никак :cray: |
Что простите?
|
eskize,
может http://htmlbook.ru/html/label добавите чтоб было чего красить |
Цитата:
|
Это понятно, но я думаю и так видно.
|
Цитата:
Я знаю как использовать lavel, но не знаю как подсветить, тоже думал |
eskize,
неа невидно ))) и как насчёт label? |
eskize,
<label><input type="..."> Текст</label> b.parent().css() |
eskize,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function () { $('.answers').click(function () { var b = $(':checked'); b.parent().css({background: 'rgba(0, 204, 51, 1)'}) } ) } ) </script> </head> <body> <div class='answers'> <label><input type='radio' name='answer'> Текст</label> <label><input type='radio' name='answer'> Текст</label> <label><input type='radio' name='answer'> Текст</label> </div> </body> </html> |
Именно это меня интересовало, огромное спасибо)
Даже спасибище) |
Может подскажете еще, как сделать предупреждение на кнопки обновить и назад. Т.е. Если юзер обновляет страницу я вывожу предупреждение что тест начнется сначала. Так же и с обновить)
$(window).bind('beforeunload',function(){ //save info somewhere return 'are you sure you want to leave?'; }); Вот все что нашел в гугле, но это не подходит так как при отправке формы - функция сработает тоже. |
Часовой пояс GMT +3, время: 08:40. |