Здравствуйте. Есть форма. В ней много всяких полей. И 4 обязательных поля (фон их подсвечен, если пустые). Остальные скрыты до того, пока 4 обязательных не будут заполнены. И всё вроде бы работает, но: если заполнить сразу последнее обязательное поле, а остальные нет, то отображаются все. Как создать логическое условие для проверки всех полей. Лучше через switch. спасибо
Условие показа всех скрытых полей должно включать все 4 обязательных поля: Если условие (поле name пустое (ИЛИ) поле phone пустое (ИЛИ) поле street пустое (ИЛИ) поле dom пустое ) выполняется, то показывать скрытые поля не нужно Если же оно не выполняется, то все обязательные поля заполнены и нужно показывать скрытые поля Код (Text): function joy() { rr=document.jo; if(rr.name.value !='') { nameEmpty=false; /// действия если поле заполнено ..... } else { nameEmpty = true; /// действия если поле не заполнено .... } if(rr.phone.value !='') { phoneEmpty = false; /// действия если поле заполнено ..... } else { phoneEmpty = true; /// действия если поле не заполнено .... } if(rr.street.value !='') { streetEmpty=false; /// действия если поле заполнено ..... } else { streetEmpty = true; /// действия если поле не заполнено .... } if(rr.dom.value !='') { domEmpty=false; /// действия если поле заполнено ..... } else { domEmpty = true; /// действия если поле не заполнено .... } if( nameEmpty || phoneEmpty || streetEmpty || domEmpty) { // хотя бы одно обязательное поле незаполнено /// действия если не все обязательные поля заполнены .... } else { /// действия если все обязательные поля аполнены .... } }
а как это упростить? Код (Text): function joy(){if(rr.email.value!=''){rr.subm.disabled=0;} else{rr.subm.disabled=1;} if(rr.name.value!=''){rr.subm.disabled=0;} else{rr.subm.disabled=1;} if(rr.street.value!=''){rr.subm.disabled=0;} else{rr.subm.disabled=1;} if(rr.dom.value!=''){rr.subm.disabled=0;} else{rr.subm.disabled=1;} if(rr.cap.value!=''){rr.subm.disabled=0;} else{rr.subm.disabled=1;} if(rr.phone.value!=''){rr.subm.disabled=0;} else{rr.subm.disabled=1;} if(rr.dop.checked){document.getElementById('pol'); pol.style.display = 'inline';pol.style.display = 'none';} else {pol.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('family'); family.style.display = 'inline';pol.style.display = 'none';} else {family.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('phoneh'); phoneh.style.display = 'inline';pol.style.display = 'none';} else {phoneh.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('pod'); pod.style.display = 'inline';pol.style.display = 'none';} else {pod.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('et'); et.style.display = 'inline';pol.style.display = 'none';} else {et.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('dmf'); dmf.style.display = 'inline';pol.style.display = 'none';} else {dmf.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('kv'); kv.style.display = 'inline';pol.style.display = 'none';} else {kv.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('trn'); trn.style.display = 'inline';pol.style.display = 'none';} else {trn.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('ot'); ot.style.display = 'inline';pol.style.display = 'none';} else {ot.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('txt'); txt.style.display = 'inline';pol.style.display = 'none';} else {txt.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('usb'); usb.style.display = 'inline';pol.style.display = 'none';} else {usb.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('printer'); printer.style.display = 'inline';pol.style.display = 'none';} else {printer.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('osi'); osi.style.display = 'inline';pol.style.display = 'none';} else {osi.style.display = 'none';pol.style.display = 'block';} if(rr.dop.checked){document.getElementById('usl'); usl.style.display = 'inline';pol.style.display = 'none';} else {usl.style.display = 'none';pol.style.display = 'block';} if(rr.name.value=='' || rr.street.value=='' || rr.dom.value=='' || rr.cap.value=='' || rr.phone.value=='' || rr.cap.value.length!=4){rr.subm.disabled=1;}else{ if(!rr.dop.checked){rr.dop.checked=true;}else{return false;}} кстати, код формирует php Код (Text): <?php function valid(){ $arr=array('email','name','street','dom','cap','phone'); for($i=0;$i<count($arr);$i++){ $ret.="if(rr.$arr[$i].value!=''){rr.subm.disabled=0;}\nelse{rr.subm.disabled=1;}\n";} $ar=array('pol','family','phoneh','pod','et','dmf','kv','trn','ot','txt','usb','printer','osi','usl'); for($k=0;$k<count($ar);$k++){$ret.="if(rr.dop.checked){document.getElementById('$ar[$k]');\n$ar[$k].style.display = 'inline';$ar[0].style.display = 'none';} else {"."$ar[$k].style.display = 'none';$ar[0].style.display = 'block';}\n";} $ret.="if("; for($l=1;$l<count($arr);$l++) {$ret.="rr.$arr[$l].value=='' || ";} $ret.="rr.cap.value.length!=4){rr.subm.disabled=1;}else{ if(!rr.dop.checked){rr.dop.checked=true;}else{return false;}}"; return $ret;} ?>