Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 11.11.2015, 09:56
Аватар для unkind
Кандидат Javascript-наук
Отправить личное сообщение для unkind Посмотреть профиль Найти все сообщения от unkind
 
Регистрация: 01.11.2012
Сообщений: 103

EmperioAf,
спасибо,учту замечание.
Изменил, только опять происходит действия на последним выбранным элементом..
Ответить с цитированием
  #32 (permalink)  
Старый 11.11.2015, 10:25
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от unkind
Изменил, только опять происходит действия на последним выбранным элементом..
Это означает, что где в коде вы проходите циклом по нескольким элементам и каждый раз перезаписываете значения в одну и ту же переменную
Ответить с цитированием
  #33 (permalink)  
Старый 11.11.2015, 10:28
Аватар для unkind
Кандидат Javascript-наук
Отправить личное сообщение для unkind Посмотреть профиль Найти все сообщения от unkind
 
Регистрация: 01.11.2012
Сообщений: 103

EmperioAf,
в комментариях указал то,что как бы должно делаться,т.е я так подозреваю
function grant()
  { var d= document;
  var a;
var b;
  var c;
  var d;
  for(i=0;i<=11;i++){
  if ((d.form1.elements[i]).checked){  //прошел циклом,нашел элемент
    a=(d.form1.elements[i].value);//сохранил
 
        }
 
   if ((d.form1.elements[i]).checked){//тут аналогично
    b=(d.form1.elements[i].value);
    
    }
    if ((d.form1.elements[i]).checked){
    c=(d.form1.elements[i].value);
    
    }
    if ((d.form1.elements[i]).checked){
    d=(d.form1.elements[i].value);
    
}
    

document.getElementById("pole").value=+(a*b*c)+d;

  }
}


Где-то видел,что можно делать так:
цикл for
if (что-то){
d=(что-то)i++; //можно ли так??

}
Ответить с цитированием
  #34 (permalink)  
Старый 11.11.2015, 10:48
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от unkind
Где-то видел,что можно делать так:
цикл for
if (что-то){
d=(что-то)i++; //можно ли так??

}
Оператор цикла и оператор условия это совершенно разные операторы.
Правда из цикла можно легко сделать оператор условия, но иначе можно сделать только с помощью меток.
В javascript можно использовать метки, чтобы прыгать между уровнями цикла.

Метки действуют только для циклов и switch, т.е организовать полноценный goto через них нельзя

http://javascript.ru/basic/syntax-switch-for#metki
Т.е. через оператор if сделать полноценный цикл у вас не получится

Сообщение от unkind
for(i=0;i<=11;i++){
  if ((d.form1.elements[i]).checked){  //прошел циклом,нашел элемент
    a=(d.form1.elements[i].value);//сохранил
  
        }
  
   if ((d.form1.elements[i]).checked){//тут аналогично
    b=(d.form1.elements[i].value);
     
    }
    if ((d.form1.elements[i]).checked){
    c=(d.form1.elements[i].value);
     
    }
    if ((d.form1.elements[i]).checked){
    d=(d.form1.elements[i].value);
     
}
Таким образом вы находите последний выбранный элемент и записываете его в переменные a,b,c и d. Лучше в таком случае завести массив и присвоить ему length равный количеству чекбоксов минус 1 и записывать в него. Или вообще создать пустой объект и заносить в него
данные только если checked
Ответить с цитированием
  #35 (permalink)  
Старый 11.11.2015, 11:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

if ((d.form1.elements[i]).checked){  //прошел циклом,нашел элемент
    a=(d.form1.elements[i].value);//сохранил
}
if ((d.form1.elements[i]).checked){//тут аналогично


Не получится так.
Ответить с цитированием
  #36 (permalink)  
Старый 11.11.2015, 11:35
Аватар для unkind
Кандидат Javascript-наук
Отправить личное сообщение для unkind Посмотреть профиль Найти все сообщения от unkind
 
Регистрация: 01.11.2012
Сообщений: 103

EmperioAf,
laimas,
function grant()
  { var d= document;
  var arr=(12);
  var a;
var b;
  var c;
  var d;
  for(i=0;i<=12;i++){
  if ((d.form1.elements[i]).checked){
    arr[i]=(d.form1.elements[i].value);
	
заношу элементы в массив,
alert(arr[i]);//показывает выбранные элементы,однако arr[0] не получается так обратиться и достать от туда выбранное число 

}
 
  }
}

Последний раз редактировалось unkind, 11.11.2015 в 11:52.
Ответить с цитированием
  #37 (permalink)  
Старый 11.11.2015, 11:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вам уже неоднократно говорилось, что checkbox в вашей задаче, это ... не охота говорить, после не раз сказанного напрашивается грубость.

Все развалится к чертовой матери стоит только пользователю случайно выбрать две и более кнопки в группе. Вы вообще думаете над этим или похер все?
Ответить с цитированием
  #38 (permalink)  
Старый 11.11.2015, 11:58
Аватар для unkind
Кандидат Javascript-наук
Отправить личное сообщение для unkind Посмотреть профиль Найти все сообщения от unkind
 
Регистрация: 01.11.2012
Сообщений: 103

laimas,
тогда вопрос,вообще не обрабатывать js chekbox?
Ответить с цитированием
  #39 (permalink)  
Старый 11.11.2015, 12:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Да ити вашу мать, вы знаете разность между chekbox и radio кнопками?
Ответить с цитированием
  #40 (permalink)  
Старый 11.11.2015, 12:05
Аватар для unkind
Кандидат Javascript-наук
Отправить личное сообщение для unkind Посмотреть профиль Найти все сообщения от unkind
 
Регистрация: 01.11.2012
Сообщений: 103

laimas,
множественный и один выбор
поменял,а дальше то что??
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style>
* {
  margin:10;
  padding: 0;
  outline: none;
}
</style>
</head>

<body>
    <FORM name="form1">
  <div>Выберите курс: </div>
  <br>
  <input type="radio" name="group1"  value="100" >pyccкий<br>
  <input type="radio" name="group1" value="200" >английский<br>
  <input type="radio" name="group1"  value="300">французский<br>
   <input type="radio"  name="group1" value="400" >немецкий<br>
  <hr>
  <div>Выберите продолжительность курса (в академ.часах) : </div>
  <input type="radio"  name="group2" value="200"  >10<br>
  <input type="radio"  name="group2" value="300" >20<br>
  <input type="radio"  name="group2"  value="400">30<br>
   <input type="radio" name="group2" value="350" >50<br>
   <hr>
  <div>Выберите язык преподавания курса : </div>
  <input type="radio" value="200"  name="group3">Русский<br>
  <input type="radio"  value="400" name="group3">Английский<br>
     <hr>
  <div>Нужна ли отчетность? : </div>
  <input type="radio" value="4000"  name="group4" >Да<br>
  <input type="radio" value="0" name="group4">Нет<br>
  <hr>
   
    <hr>
    <br>
    <br>
    <div>Стоимость : </div>
	  
	    <input type="text" size="50" id="pole"  value="" onClick="grant()" ><br>
	   
	    
   </FORM>
<script language="JavaScript">

function grant()
  { var d= document;
  var arr=(12);
  var a;
var b;
  var c;
  var d;
  for(i=0;i<=12;i++){
  if ((d.form1.elements[i]).checked){
    arr[i]=(d.form1.elements[i].value);
	
	
	alert(arr[i]);
	

}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP/AJAX скрипт "Нaселение мoегo гoрoдa oнлaйн" rustik-yes Работа 2 01.12.2014 22:53
JS скрипт замены html candro Общие вопросы Javascript 23 13.11.2014 22:13
Скрипт работает только если подключать js в самом низу html! Pekkonen jQuery 3 26.01.2011 01:44
скрипт не видит форму clgs Общие вопросы Javascript 7 15.05.2009 13:58
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40