Вытащить 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, время: 22:42. |