Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Сменить атрибут type (https://javascript.ru/forum/jquery/34451-smenit-atribut-type.html)

NeoMurderer 05.01.2013 16:16

Сменить атрибут type
 
Скажите, как можно сменить атрибут type у input'ов. Вот код, как я пытаюсь делать, но ничего не происходит.
$(".form-horizontal").find(".answer").each(function() {
      $(this).attr("type","radio");
       alert($(this).attr("type"));
      });

zebra 05.01.2013 16:19

Видимо поиск элементов неверен. alert выводится?

NeoMurderer 05.01.2013 16:27

Даже алерт не выводится

zebra 05.01.2013 16:36

Цитата:

Сообщение от zebra (Сообщение 225434)
Видимо поиск элементов неверен.

...

mullih 05.01.2013 16:39

у вас ничего не получится тк вы не просто атрибут меняете, а тип input а, а он read only, могу предложить такой вариант

<html>
<head>
	<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.2.min.js"></script>

	<script type="text/javascript">
		$().ready(function () {
			$(".form-horizontal").find(".answer").each(function () {
				$(this).replaceWith($('<input type="radio" />'));
			});
		});
  </script>

</head>
<body>
<div class="form-horizontal">
	<input type="button" class="answer" />
	<input type="button" />
	</div>
</body>
</html>


ps кстати у вас и алерт поэтому не появляется, тк скрипт ошибку выкидывает и до алерта дело просто не доходить, хотите увидеть алерт, строку
$(this).attr("type","radio");
смените на
try{$(this).attr("type", "radio");}catch(ex){}

zebra 05.01.2013 16:41

Если есть атрибут readonly , то нельзя сменить тип инпуту? :no:

devote 05.01.2013 16:44

Цитата:

Сообщение от zebra
Если есть атрибут readonly , то нельзя сменить тип инпуту?

Некоторые браузеры запрещают менять атрибут type в уже вставленном или ранее вставленном в DOM элемент. Например ИЕ это точно запрещает. Насчет других браузеров не уверен.

zebra 05.01.2013 16:45

Цитата:

Сообщение от devote (Сообщение 225443)
Некоторые браузеры запрещают менять атрибут type в уже вставленном или ранее вставленном в DOM элемент. Например ИЕ это точно запрещает. Насчет других браузеров не уверен.

Проверил в фф - все меняет. Странно, что нельзя менять тип в ие

mullih 05.01.2013 16:47

Цитата:

Сообщение от zebra (Сообщение 225440)
Если есть атрибут readonly , то нельзя сменить тип инпуту? :no:

а не подскажете, где я написал про html атрибут readonly ? :)

zebra 05.01.2013 16:57

Цитата:

Сообщение от mullih
у вас ничего не получится тк вы не просто атрибут меняете, а тип input а, а он read only

вот тут


Часовой пояс GMT +3, время: 05:09.