Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2016, 11:46
Новичок на форуме
Отправить личное сообщение для Skyder Посмотреть профиль Найти все сообщения от Skyder
 
Регистрация: 18.06.2016
Сообщений: 2

Изменение radio Jquery
У меня есть список клиентов.
При нажатии на пункт списка подгружается через iframe и в отдельной форме открываются детальные данные.
В данных есть два radio
Одно отвечает за пол, второй за статус клиента.
<tr><td class='data_of_client_left_colum'>Пол</td>
   <td colspan='3'>
	<input name='male' class='male' type="radio" value="0">Муж
	<input name='male'  class='male'  type="radio" value="1">Жен
   </td></tr>
<tr><td class='data_of_client_left_colum'>Статус</td>
       <td colspan='3'>
<input name='status' class='status' type="radio" value="1">1
<input name='status' class='status' type="radio" value="2">2
<input name='status' class='status' type="radio" value="3">3
<input name='status' class='status' type="radio" value="4">4
        </td>
</tr>


Код, который обрабатывает данные следующий
function show_user_info(lastn,firstn,patr,male,stat,DOB,PH1,PH2,formul){
 	$("#Freset_info_block").trigger('reset');

	//$(".male").removeAttr("checked");
	//$(".status").removeAttr("checked");

	if(male=='1'){ $(".male").eq(0).attr("checked","checked");}
	else	{ $(".male").eq(1).attr("checked","checked");}

	$('input:radio[name="status"]').removeAttr("checked");
 $('input:radio[name="status"]').filter('[value="'+stat+'"]').attr('checked',true);

}


Несколько проблем возникло в ходе выполнения:
1. Почему-то не обнуляет форму, хотя через кнопку "reset" внутри формы все обнуляется
2. При прощелкивании нескольких клиентов radio меняется на необходимые, но после того, как radio переключается, повторно то же самое включить невозможно. Остается на последнем значении.

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

Подскажите, что может быть? Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2016, 12:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Skyder,
замените attr на prop, а так маловато данных
Ответить с цитированием
  #3 (permalink)  
Старый 18.06.2016, 12:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Skyder,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

  <script>
 $(function() {
    function show_user_info(lastn, firstn, patr, male, stat, DOB, PH1, PH2, formul) {
        $(".male").eq(+!male).prop("checked", true);
        $('input:radio[name="status"][value="' + stat + '"]').prop("checked", true)
    }
    show_user_info(0, 0, 0, 1, 3, 0, 0, 0, 0); //тест установки  checked
    window.setTimeout(function() { //тест сброса формы
        $("#Freset_info_block").trigger("reset")
    }, 3E3)
});
  </script>
</head>

<body>
<form id="Freset_info_block" action="http://">


 <table width="400"  >
 	<thead>

 	</thead>
 	<tbody>
 		<tr><td class='data_of_client_left_colum'>Пол</td>
   <td colspan='3'>
  <input name='male' class='male' type="radio" value="0">Муж
  <input name='male'  class='male'  type="radio" value="1">Жен
   </td></tr>
<tr><td class='data_of_client_left_colum'>Статус</td>
       <td colspan='3'>
<input name='status' class='status' type="radio" value="1">1
<input name='status' class='status' type="radio" value="2">2
<input name='status' class='status' type="radio" value="3">3
<input name='status' class='status' type="radio" value="4">4
        </td>
</tr>

 	</tbody>
 </table>
</form>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2016, 20:12
Новичок на форуме
Отправить личное сообщение для Skyder Посмотреть профиль Найти все сообщения от Skyder
 
Регистрация: 18.06.2016
Сообщений: 2

Сообщение от рони Посмотреть сообщение
Skyder,
замените attr на prop, а так маловато данных
Спасибо!) Я почему-то забыл совсем о prop... давно не работал с JQuery...

Еще не могу одного понять, в той же функции не обнуляет форму...
Как не кручу,как не верчу - ничего не обнуляет...
Может я чего-то не так использую, или какие-то должны быть другие требования к форме...
Форма ровно включает всю таблицу с input'ами+ другие, текстовые...
<form action='/' name='reset_info_block'  id='Freset_info_block'>
						<table class='data_of_client'>
							<tr><td class='data_of_client_left_colum'>Фамилия</td><td colspan='3'><input type='text' name='asdasd' value=''  id='lastname' class='data_input'></td></tr>
							<tr><td class='data_of_client_left_colum'>Имя</td><td colspan='3'><input type='text' id='firstname' class='data_input'></td></tr>
							<tr><td class='data_of_client_left_colum'>Отчество</td><td colspan='3'><input type='text' id='patronimic' class='data_input'></td></tr>
							<tr><td class='data_of_client_left_colum'>Пол</td><td colspan='3'>
										<input name='male' class='male' type="radio" value="0">Муж
										<input name='male'  class='male'  type="radio" value="1">Жен
									</td></tr>
							<tr><td class='data_of_client_left_colum'>Статус</td>
								   <td colspan='3'>
								   	<input name='status' class='status' type="radio" value="1">Самостоятельно<BR>
								   	<input name='status' class='status' type="radio" value="2">На лечении<BR>
								   	<input name='status' class='status' type="radio" value="3">Напоминание<BR>
								   	<input name='status' class='status' type="radio" value="4">Без напоминания
								   </td>
							</tr>
							<tr><td>Дата рождения</td><td>Телефон 1:</td><td>Телефон 2:</td></tr>
							<tr><td><input type='text' id='date_of_birth' class='data_input'></td><td><input type='text' id='phone1' class='data_input'></td><td><input type='text' id='phone2' class='data_input'></td></tr>
						</table>
...
тут еще несколько таблиц с input'ами
...

</form>


Извините, может глупые вопросы... действительно очень давно не пользовался jQuery, а тут понадобилось кое-что для своей же работы, а как назло...

Последний раз редактировалось Skyder, 18.06.2016 в 20:18.
Ответить с цитированием
  #5 (permalink)  
Старый 18.06.2016, 20:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Skyder
Еще не могу одного понять, в той же функции не обнуляем форму...
Как не кручу,как не верчу - ничего не обнуляет...
Может я чего-то не так использую, или какие-то должны быть другие требования к форме...
код перед вами, сравните что у вас иначе.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отследить изменение radio? housewm Events/DOM/Window 26 09.01.2014 03:03
jquery - изменение класса kaminskys jQuery 9 21.08.2013 17:02
Изменение стилей radio при активации checkbox brigz Events/DOM/Window 8 04.02.2012 19:47
radio button внутри петли и jquery Юльув jQuery 5 09.11.2010 16:10
jQuery Изменение цвета дочерних элементов libinstyle Общие вопросы Javascript 2 24.03.2010 04:46