Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Совеместить скрипт и html форму (https://javascript.ru/forum/dom-window/59375-sovemestit-skript-i-html-formu.html)

unkind 11.11.2015 09:56

EmperioAf,
спасибо,учту замечание.
Изменил, только опять происходит действия на последним выбранным элементом..

EmperioAf 11.11.2015 10:25

Цитата:

Сообщение от unkind
Изменил, только опять происходит действия на последним выбранным элементом..

Это означает, что где в коде вы проходите циклом по нескольким элементам и каждый раз перезаписываете значения в одну и ту же переменную

unkind 11.11.2015 10:28

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++; //можно ли так??

}

EmperioAf 11.11.2015 10:48

Цитата:

Сообщение от 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

laimas 11.11.2015 11:16

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


Не получится так.

unkind 11.11.2015 11:35

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] не получается так обратиться и достать от туда выбранное число 

}
 
  }
}

laimas 11.11.2015 11:56

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

Все развалится к чертовой матери стоит только пользователю случайно выбрать две и более кнопки в группе. Вы вообще думаете над этим или похер все?

unkind 11.11.2015 11:58

laimas,
тогда вопрос,вообще не обрабатывать js chekbox?

laimas 11.11.2015 12:02

Да ити вашу мать, вы знаете разность между chekbox и radio кнопками?

unkind 11.11.2015 12:05

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]);
	

}


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