Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2014, 11:07   #11
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

так я про id же говорил
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 16.05.2014, 14:23   #12
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Fenex
Цитата:
На странице НЕЛЬЗЯ создавать элементы с одинаковыми идентификаторами (id)
Это мне известно. Идентификатор должен быть уникальным. Благодаря этому есть возможность из JS обращаться к элементу используя его идентификатор, как переменную.

например, если у нас имеется элемент
Код HTML:
<span id = "St"></span>
, то в JS мы вместо этого
Код:
Documen.GetElementById('St').innerText = ...
может просто написать
Код:
St.innerText = ...

Цитата:
А не работает потому, что у вас на странице два элемента с name="query", соответственно document.form1.query вернёт массив из двух элементов.
Имена могут быть одинаковыми, в отличие от ID. У радиокнопок имена задаются одинаковыми для того, чтобы переключались зависимо друг от друга (когда одна активируются, то деактивируются другие). Если имена будут различны, то каждая из радиокнопок может быть активирована, независимо от состояния других.
Да и потом, почему в гугл-хром работает? Я пробовал задать разные имена, а в других браузерах всё равно не работает.
Вадим Мошев вне форума Ответить с цитированием
Старый 16.05.2014, 15:31   #13
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
Documen.GetElementById('St').innerText = ...
ну почти так)
Код:
  document. // мы тут регистрозависимые и любим недостающие t
    getElementById('St'). // все методы и свойства в JS пишутся в lowerCamelCase
    innerHTML = '...'; // innerText исключен из js 1.5
Цитата:
Да и потом, почему в гугл-хром работает? Я пробовал задать разные имена, а в других браузерах всё равно не работает.
Защита от дурака, я думаю...
p.s. Честно, никогда радио-кнопки в JS не разбирал, а разбираться лень, так что на правах флуда) По делу ничего не скажу)
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 16.05.2014, 15:37   #14
Форсировка
Пользователь
 
Регистрация: 16.06.2009
Сообщений: 50
По умолчанию

решил задачу следующим образом:
Код:
<script language="JavaScript">

function Volume() {
 var summa=document.form1.query[0].checked;
  var summa1=document.form1.query[1].checked;
     if (summa == false) {
 document.getElementById('a1').innerHTML="2";}
      if (summa1 == false) {
 document.getElementById('a1').innerHTML="1";}
}
</script>
<form name="form1">
<input name = "query"   type="radio" value="">
Да
<input name = "query"   type="radio" value="" >
Да
</form>
<input onfocus="this.blur()" value=" Рассчитать  " onclick="Volume()" type="button" />
<table><tr><td id="a1"></td></tr></table>
</center>
Форсировка вне форума Ответить с цитированием
Старый 16.05.2014, 15:45   #15
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Код:
<form name="form1" class="form1">

<input name = "query"  type="radio" value="1">
Да
<input name = "query"  type="radio" value="2">
Нет</p>
<input name = "query"  type="radio" value="3">
Нет</p>
<input name = "query"  type="radio" value="4">
<table>
<input onfocus="this.blur()" value=" Рассчитать" onclick="Volume()" type="button" />
<tr><td id="a1" class="pole"></td><td id="a2" class="pole"></td></tr>
</table></form>
<script language="JavaScript">
function Volume() {
   var group=document.form1.query;
   var summa = 0;
   for(i=0; i<group.length; i++) {
		alert("Вошли");
       if(group[i].checked) {
          summa=group[i].value;
          break;
		}
   }
   document.getElementById('a2').innerHTML=summa;
}
</script>
А вообще, ИМХО, если есть подобные задачи, то нужно использовать js фраемворки. Тогда можно будет повесить событие и html-код будет красивее.
Самый перспективный framework Yii (c)

Последний раз редактировалось TranceSmile; 16.05.2014 в 18:03. Причина: Скобочки были поставлены не правильно. Вот что значит писать код на коленках )
TranceSmile вне форума Ответить с цитированием
Старый 16.05.2014, 17:39   #16
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Код:
for(i=0; i<group.length; i++) {
       if(group[i].checked) {
          summa +=group[i].value;
          break;
   }
   document.getElementById('a2').innerHTML=summa;
ИМХО, извращение. не в обиду
_______________-
кроме того, ваш код не работает ни в одном браузере (Chrome, Mozilla, IE8), а последний даже зависает при открытии страницы с таким кодом

Последний раз редактировалось Вадим Мошев; 16.05.2014 в 17:47.
Вадим Мошев вне форума Ответить с цитированием
Старый 16.05.2014, 18:04   #17
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Код:
for(i=0; i<group.length; i++) {
       if(group[i].checked) {
          summa +=group[i].value;
          break;
   }
   document.getElementById('a2').innerHTML=summa;
ИМХО, извращение. не в обиду
_______________-
кроме того, ваш код не работает ни в одном браузере (Chrome, Mozilla, IE8), а последний даже зависает при открытии страницы с таким кодом
Извиняюсь подправил выше. Просто скобки не верно расставлены были.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
видео-захват Артэс Софт 0 17.05.2013 10:46
Создать программу,имеющая процедуру,кторая в производном текстовом файле,которая имеет слова и числа,изменяющая все числа числа,ме Fingergod Паскаль, Turbo Pascal, PascalABC.NET 0 13.12.2012 20:08
Qt, захват мыши Granus Qt и кроссплатформенное программирование С/С++ 2 05.06.2012 00:48
Задачи в ТурбоПаскаль: найти числа Армстронга и просуммировать числа в последовательности номера которых простые числа Lena1808 Помощь студентам 1 17.05.2012 08:00
Захват радио TranceSmile PHP 0 24.12.2010 16:45