<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#parent1").hide();
$("#parent2").hide();
$("#data1").hide();
$("#data2").hide();
$("select[name=parentnumb]").change(function() {
var parentnumb = $(this).val();
if(parentnumb == "1") {
$("#parent1").fadeOut();
$("#parent2").fadeOut();
$("#data1").fadeOut();
$("#data2").fadeOut();
}
if(parentnumb == "2") {
$("#parent1").fadeIn();
$("#parent2").fadeOut();
$("#data1").fadeIn();
$("#data2").fadeOut();
}
if(parentnumb == "3") {
$("#parent1").fadeIn();
$("#parent2").fadeIn();
$("#data1").fadeIn();
$("#data2").fadeIn();
} else {
$("#parent1").fadeOut();
$("#parent2").fadeOut();
$("#data1").fadeOut();
$("#data2").fadeOut();
}
});
});
</script>
Суть работы - есть 4 <fieldset>, у каждого свой и 1 select соответственно. В случае работы скрипта с одним ид все работает на ура, но с 4 ид есть некоторые проблемы. select выглядит следующим образом:
<select name="parentnumb">
<option value="1">Выберите из списка:</option>
<option value="2">1</option>
<option value="3">2</option>
</select>
То есть, при параметре 1 все выпадающие ид скрыты, при 2 - показывается 2 поля и при 3 - все 4. Но. При выборе второго варианта ничего не выдается, как будто выбран первый. Куда можно копать?
Спустя 45 минут, 30 секунд (30.01.2012 - 10:57) redreem написал(а):
показывай полный код всех фиелдов селектов и тп.п.
по твоему описанию ниче не понятно.
по твоему описанию ниче не понятно.
Спустя 3 часа, 33 минуты (30.01.2012 - 14:30) nugle написал(а):
Код ужасен, меняем на
Что мы тут видим. else относится к последнему if
else {
blocks.fadeOut();
}
исправляй
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var blocks = $("#parent1, #parent2, #data1, #data2");
blocks.hide();
$("select[name=parentnumb]").change(function() {
var parentnumb = $(this).val();
if(parentnumb == "1") {
blocks.fadeOut();
}
if(parentnumb == "2") {
$("#parent1, #parent1").fadeIn();
$("#parent2, #data2").fadeOut();
}
if(parentnumb == "3") {
blocks.fadeIn();
} else {
blocks.fadeOut();
}
});
});
</script>
Что мы тут видим. else относится к последнему if
else {
blocks.fadeOut();
}
исправляй
Спустя 1 час, 23 минуты, 16 секунд (30.01.2012 - 15:54) CyberFuntik написал(а):
Цитата (nugle @ 30.01.2012 - 11:30) |
Код ужасен, меняем на <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { var blocks = $("#parent1, #parent2, #data1, #data2"); blocks.hide(); $("select[name=parentnumb]").change(function() { var parentnumb = $(this).val(); if(parentnumb == "1") { blocks.fadeOut(); } if(parentnumb == "2") { $("#parent1, #parent1").fadeIn(); $("#parent2, #data2").fadeOut(); } if(parentnumb == "3") { blocks.fadeIn(); } else { blocks.fadeOut(); } }); }); </script> Что мы тут видим. else относится к последнему if else { blocks.fadeOut(); } исправляй |
ситуация такая же, при parentnumb2 parent1 выскакивает буквально на секунду и опять пропадает. выкладываю fieldset и select
<fieldset>
<legend>
Количество родителей
</legend>
<table>
<tr>
<td> Количество родителей: </td>
</tr>
<tr>
<td>
<select name="parentnumb" id="parentnumb">
<option value="1">Выберите из списка:</option>
<option value="2">1</option>
<option value="3">2</option>
</select></td>
</tr>
</table>
</fieldset>
<fieldset id="parent1">
<legend>
Данные первого родителя
</legend>
<table width="100%" border="0">
<tr>
<td align="center">Фамилия
<br>
<input type="text" name="p1" size="20" check_message="Проверьте правильность заполнения фамилии" check_pattern="^[a-zA-Zа-яА-Я\-]+$" />
</td>
<td align="center">Имя
<br>
<input type="text" name="p2" size="20" check_message="Проверьте правильность заполнения имени" check_pattern="^[a-zA-Zа-яА-Я\-]+$" />
</td>
<td align="center">Отчество
<br>
<input type="text" name="p3" size="20" check_message="Проверьте правильность заполнения отчества" check_pattern="^[a-zA-Zа-яА-Я\-]+$" />
</td>
</tr>
</table>
</fieldset>
<fieldset id="data1">
<legend>
Паспортные данные
</legend>
<table width="100%" border="0">
<tr>
<td>Дата рождения</td>
<td>Серия номер</td>
</tr>
<tr>
<td>
<select name="select3" check_message="Выберите дату рождения">
<option value="">День</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
//бла-бла-бла все числа
<option value="31">31</option>
</select>
<select name="select4" check_message="Выберите месяц рождения">
<option value="">Месяц</option>
<option value="января">Январь</option>
<option value="февраля">Февраль</option>
<option value="марта">Март</option>
/бла-бла-бла все месяца
<option value="декабря">Декабрь</option>
</select>
<select name="select5" check_message="Выберите год рождения">
<option value="">Год</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="1940">1940</option>
</select></td>
<td>
<input name="p4" type="text" size="2" maxlength="2" check_message="Проверьте правильность заполнения серии паспорта" check_pattern="^[0-9]+$" />
<input name="p5" type="text" size="2" maxlength="2" check_message="Проверьте правильность заполнения серии паспорта" check_pattern="^[0-9]+$" />
<input name="p6" type="text" size="6" maxlength="6" check_message="Проверьте правильность заполнения номера паспорта" check_pattern="^[0-9]+$" />
</td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td>Место рождения</td>
<td>Гражданство</td>
</tr>
<tr>
<td>
<input name="p31" type="text" size="30" maxlength="100" check_message="Укажите место рождения" check_pattern="^[а-яА-Яa-zA-Z0-9\ \-\.\№\#]+$" />
</td>
<td>
<input name="p32" type="text" size="10" maxlength="20" check_message="Укажите гражданство" check_pattern="^[а-яА-Я]+$"/>
</td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td>Кем выдан</td>
<td>Пол</td>
</tr>
<tr>
<td>
<input name="p7" type="text" size="30" maxlength="100" check_message="Укажите кем выдан паспорт" check_pattern="^[а-яА-Я0-9\№\#\ \-]+$" />
</td>
<td>
<select name="select01" check_message="Укажите пол">
<option value="">Выберите из списка:</option>
<option value="мужской">мужской</option>
<option value="женский">женский</option>
</select></td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td>Дата выдачи</td>
<td>Код подразделения</td>
</tr>
<tr>
<td>
<select name="select6" check_message="Проверьте правильность заполнения даты выдачи паспорта">
<option value="">День</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
//бла-бла-бла числа
<option value="31">31</option>
</select>
<select name="select7" check_message="Проверьте правильность заполнения даты выдачи паспорта">
<option value="">Месяц</option>
<option value="января">Январь</option>
<option value="февраля">Февраль</option>
<option value="марта">Март</option>
//бла-бла-бла месяца
<option value="декабря">Декабрь</option>
</select>
<select name="select8" check_message="Проверьте правильность заполнения даты выдачи паспорта">
<option value="">Год</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
//бла-бла-бла года
<option value="1980">1980</option>
</select></td>
<td>
<input name="p8" type="text" size="3" maxlength="3" check_message="Проверьте правильность заполнения кода подразделения" check_pattern="^[0-9]+$" />
-
<input name="p9" type="text" size="3" maxlength="3" check_message="Проверьте правильность заполнения кода подразделения" check_pattern="^[0-9]+$" />
</td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td align="center">Прописка</td>
</tr>
<tr>
<td>Город</td>
<td>Улица</td>
<td>Дом</td>
<td>Квартира</td>
</tr>
<tr>
<td>
<input type="text" name="p21" size="20" check_message="Проверьте правильность заполнения адреса прописки" check_pattern="^[0-9a-zA-Zа-яА-Я\-\ ]+$" />
</td>
<td>
<input type="text" name="p22" size="20" check_message="Проверьте правильность заполнения адреса прописки" check_pattern="^[0-9a-zA-Zа-яА-Я\-\.\ ]+$" />
</td>
<td>
<input name="p23" type="text" size="5" maxlength="10" check_message="Проверьте правильность заполнения адреса прописки" check_pattern="^[0-9\-\/\]+$" />
</td>
<td>
<input name="p24" type="text" size="6" maxlength="6" check_message="Проверьте правильность заполнения адреса прописки" check_pattern="^[0-9]+$" />
</td>
</tr>
</table>
</fieldset>
parent2 и data2 аналогично. если возникнет вопрос, что за check_message и check_pattern, скрипт ниже. все работает.
<script type='text/javascript'>
function checkForm(obj, elems) {
var element, pattern;
for(var i = 0; i < obj.elements.length; i++) {
element = obj.elements[i];
if(elems != undefined)
if(elems.join().indexOf(element.type) < 0)
continue;
if(!element.getAttribute("check_message"))
continue;
if( pattern = element.getAttribute("check_pattern")) {
pattern = new RegExp(pattern, "g");
if(!pattern.test(element.value)) {
alert(element.getAttribute("check_message"));
element.focus();
return false;
}
} else if(/^\s*$/.test(element.value)) {
alert(element.getAttribute("check_message"));
element.focus();
return false;
}
}
return true;
}
</script>
Спустя 3 часа, 14 минут, 15 секунд (30.01.2012 - 19:08) CyberFuntik написал(а):
у кого-нибудь еще есть мысли?
Спустя 1 час, 51 минута, 45 секунд (30.01.2012 - 21:00) nugle написал(а):
CyberFuntik
друг мой, нужно прикладывать немножко усилий, показываешь один код, а jquery имеет селекторы, которых в верстке нет. держи:
друг мой, нужно прикладывать немножко усилий, показываешь один код, а jquery имеет селекторы, которых в верстке нет. держи:
$(document).ready(function() {
var blocks = $('#parent1, #data1');
var data1 = $('#data1');
blocks.hide();
$("select[name=parentnumb]").change(function() {
var parentnumb = $(this).val();
if(parentnumb == "1") {
blocks.fadeOut();
}
if(parentnumb == "2") {
$('#parent1').fadeIn();
if(data1.css('display') != 'none')
data1.fadeOut();
}
if(parentnumb == "3") {
blocks.fadeIn();
}
});
});