Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2013, 17:33
Интересующийся
Отправить личное сообщение для px379 Посмотреть профиль Найти все сообщения от px379
 
Регистрация: 15.10.2011
Сообщений: 13

Проблема с радио кнопками
Здравствуйте, Возникла проблема с радио кнопками, даже уже не пойму в чем проблема, то ли с JS то ли с HTML, то ли руки у меня совсем не с того места уже ростут...

Цель такова, надо ввести в текстовое поле размер файла, выбрать из радио-кнопок Gb или Gb, нажать кнопку - СТАРТ, и по идее код должен сгенерироваться с bb-тегами.

Проблема первая, когда клацаю на радиокнопку "Gb", то предыдущая кнопка - Mb остается активной. (это в пункте - Размер)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
<title>1111111111111</title>
</head>
<body>
<div id="header"><h1>Шапка</h1></div>
<form action="">

<br />

<table border="1" cellpadding="7" cellspacing="0">
<tr>
<td class="left"><b>Заголовок / название фильма: (20pt)</b></td>
<td><input type="text" name="zagolovok" size="100" class="form"></td>
</tr>
<tr>
<td class="left"><b>Обложка / постер: (url: прямая ссылка)</b></td>
<td><input type="text" name="poster" size="100" class="form"></td>
</tr>

<tr>
<td colspan="2"><b>Информация о фильме<b/></b></td>
</tr>

<tr>
<td class="left"><b>Название:</b></td>
<td><input type="text" name="nazvanie" size="100" class="form"></td>
</tr>

<tr>
<td class="left"><b>Оригинальное название:</b></td>
<td><input type="text" name="orignaz" size="100" class="form"></td>
</tr>

<tr>
<td class="left"><b>Год выпуска:</b></td>
<td><input type="text" name="god" size="100" class="form"></td>
</tr>

<tr>
<td class="left"><b>Жанр:</b></td>
<td><input type="text" name="janr" size="100" class="form"></td>
</tr>

<tr>
<td class="left"><b>Режисер:</b></td>
<td><input type="text" name="regiser" size="100" class="form"></td>
</tr>

<tr>
<td class="left"><b>В ролях:</b></td>
<td><input type="text" name="roli" size="100" class="form"></td>
</tr>

<tr>
<td colspan="2"><b>О фильме / описание<b/><br /><textarea name="opisanie" rows="5" cols="100"></textarea></b></td>
</tr>

<tr>
<td colspan="2"><b>Скриншоты:<b/><br /><textarea name="skrins" rows="3" cols="100"></textarea></b></td>
</tr>

<tr>
<td colspan="2"><b>Информация о файле<b/></b></td>
</tr>

<tr>
<td class="left"><b>Тип файла:</b></td>
<td><select name="tfile" size="1">

<option value="" selected="">

</option>

<option value="MP4">
MP4
</option>
<option value="AVI">
AVI
</option>
 
<option value="FLV">
FLV
</option>

<option value="MKV">
MKV
</option>
</select>
</td>
</tr>

<tr>
<td class="left"><b>Качество:</b></td>
<td><input type="text" name="kachestvo" size="100" class="form"></td>
</tr>

<tr>
<td class="left"><b>Продолжительность:</b></td>
<td><input type="text" name="hour" maxlength="2" size="1" class="form">:<input type="text" name="minute" maxlength="2" size="1" class="form">:<input type="text" name="second" maxlength="2" size="1" class="form"></td>
</tr>

<tr>
<td class="left"><b>Видео кодек:</b></td>
<td><input type="text" name="vid" size="100" class="form"></td>
</tr>

<tr>
<td class="left"><b>Аудио кодек:</b></td>
<td><input type="text" name="zvuk" size="100" class="form"></td>
</tr>

<tr>
<td class="left"><b>Размер:</b></td>
<td><input type="text" name="size" size="100" class="form"><input type="radio" checked="checked" name="megabite" value="mb">Mb <input type="radio" name="gigabite" value="gb">Gb</td>
</tr>

<tr>
<td class="left"><b>Скачать:</b></td>
<td><input type="text" name="down" size="100" class="form"></td>
</tr>

<tr>
<td colspan="2"><input type="button" value="СТАРТ" onclick="create(this.form)" class="buttonformal"> <input type="reset" value="Очистить все поля"class="buttonformal"><br /><textarea name="story" rows="20" cols="100"></textarea></td>
</tr>
</table>
</form>
<div id="footer">&copy; Подвал</div>
</body>
</html>


Проблема вторая. именно эта часть кода не хочет работать как надо. Хотя, возможно если решить проблему выше, то и эта сама собой исчезнет)

if (form.size.value != "") {
form.story.value +="[b]Размер:[/b] " +
form.size.value + "\n";
}

if (form.mb.value != "") {
form.story.value +="m" +
form.mb.value + "";
}

if (form.gb.value != "") {
form.story.value +="b" +
form.gb.value + "\n";
}
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2013, 18:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Сообщение от px379
<b/>
интересные теги -- и почитать как делать кнопки radio и проверять checked а не value потом
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2013, 07:20
Интересующийся
Отправить личное сообщение для px379 Посмотреть профиль Найти все сообщения от px379
 
Регистрация: 15.10.2011
Сообщений: 13

Сообщение от рони Посмотреть сообщение
интересные теги -- и почитать как делать кнопки radio и проверять checked а не value потом
С тем тегом я сам не знаю как так получилось. Наверное в отчаянии поставил случайно)

В JS в смысле так?
// текстовое поле
if (form.size.value != "") {
form.story.value +="[b]Размер:[/b] " +
form.size.value + "\n";
}
// radio Mb
if (form.mb.value != "") {
form.story.checked +="m" + // <---
form.mb.value + "";
}
// radio Gb
if (form.gb.value != "") {
form.story.checked +="b" + // <---
form.gb.value + "\n";
}


А что с самой кнопкой не так? Не, ну с ней что-то не так конечно, но я уже с какого-то сайта тупо скопировал эти кнопки "radio", все равно тоже самое.
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2013, 07:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Сообщение от px379
form.story.checked
у текстарии небывает checked --- чтобы кнопки радио зависели друг от друга имя у них должно быть одно а вот id разное. у какого id checked у того и берут значение ... можно без id по имени ...и где функция create?
Ответить с цитированием
  #5 (permalink)  
Старый 29.07.2013, 08:56
Интересующийся
Отправить личное сообщение для px379 Посмотреть профиль Найти все сообщения от px379
 
Регистрация: 15.10.2011
Сообщений: 13

Сообщение от рони Посмотреть сообщение
у текстарии небывает checked --- чтобы кнопки радио зависели друг от друга имя у них должно быть одно а вот id разное. у какого id checked у того и берут значение ... можно без id по имени ...и где функция create?
Ясно, "радио" заработали как надо, только почему-то не хочет отправляться информация в поле textarea

create есть, я его просто на форуме не дописал.

wait_visibility('generator', 0);function create(form) {
form.story.value="";

if (form.size.value != "") {
form.story.value +="[b]Размер:[/b] " +
form.size.value + "\n";
}

if (form.mb.value != "") {
form.story.value +="Mb" +
form.mb.value + "";
}

if (form.gb.value != "") {
form.story.value +="Gb" +
form.gb.value + "\n";
}}
Ответить с цитированием
  #6 (permalink)  
Старый 29.07.2013, 09:04
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

так для этого фаербаг есть. в хроме f12 вызывается. пишем:

console.log(form.mb)
if (form.mb.value != "") {
form.story.value +="Mb" +
form.mb.value + "";
}

в консоль выдает undefined, а значит объект не найден. т.е. его нет. либо имя не верное либо еще что то...
Ответить с цитированием
  #7 (permalink)  
Старый 29.07.2013, 09:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

px379,
http://learn.javascript.ru/searching-elements-dom

упорно медитируем на этой странице пока не просветлеет как обращаться к элементу по имени

http://learn.javascript.ru/form-elem...put-type-radio
здесь медитация на как проверить чекед
Ответить с цитированием
  #8 (permalink)  
Старый 29.07.2013, 09:22
Интересующийся
Отправить личное сообщение для px379 Посмотреть профиль Найти все сообщения от px379
 
Регистрация: 15.10.2011
Сообщений: 13

Сообщение от skrudjmakdak Посмотреть сообщение
так для этого фаербаг есть. в хроме f12 вызывается. пишем:

console.log(form.mb)
if (form.mb.value != "") {
form.story.value +="Mb" +
form.mb.value + "";
}

в консоль выдает undefined, а значит объект не найден. т.е. его нет. либо имя не верное либо еще что то...
Ясно. Спасибо, буду пробовать разбираться) Если что, тогда уже сделаю через "селект" и плюну на те радио =)
Ответить с цитированием
  #9 (permalink)  
Старый 29.07.2013, 09:30
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

лан, смотри:
<tr>
<td class="left"><b>Размер:</b></td>
<td><input type="text" name="size" size="100" class="form"><input type="radio" checked="checked" name="megabite" value="mb">Mb <input type="radio" name="megabite" value="gb">Gb</td>
</tr>

имя у радибатанов должно быть одинаковое, допустим так:megabite
тогда обращаемся с нему так: console.log(form.megabite);
будет массив из двух элементов.. (т.к. их действительно два с таким именем)
и можно обратиться к конкретному элементу:console.log(form.megabite[0]);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Скрипт онлайн радио javascript Мерлин Ваши сайты и скрипты 1 28.05.2012 10:52
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47