Помогите с формой(списком)
Народ помогите решить проблему!
У меня одна форма: <form name="matchform" id = "form" method="post" action=""> <label for="nh1" id = "ga1">Первая</label> <select name="menu" id="form_match1"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh2" id = "game2">Вторая</label> <select name="menu2" id="form_match2"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh3" id = "ga3">Третья</label> <select name="menu3" id="form_match3"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh4" id = "ga4">Четвертая</label> <select name="menu4" id="form_match4"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh5" id = "ga5">Пятая</label> <select name="menu5" id="form_match5"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh6" id = "ga6">Шестая</label> <select name="menu6" id="form_match6"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh7" id = "ga7">Седьмая</label> <select name="menu7" id="form_match7"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh8" id = "ga8">Восьмая</label> <select name="menu8" id="form_match8"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh9" id = "ga9">Девятая</label> <select name="menu9" id="form_match9"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh10" id = "ga10">Десятая</label> <select name="menu10" id="form_match10"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh11" id = "ga11">Одинадцатая</label> <select name="menu11" id="form_match11"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <label for="nh12" id = "ga12">двенадцатая</label> <select name="menu12" id="form_match12"> <option value="1"></option> <option value="2">позиция1</option> <option value="3">позиция2</option> <option value="4">позиция3</option> </select> <input type="submit" name="knopka" id="knopka" value="ОК"/> </form> Как сделать что бы при выборе пяти любых списков остальные семь блокировались? Прбовал эксперементировать с этим: $('#form').change(function(){ var myChoice = $('#form_match1 :selected').val(); var myChoice2 = $('#form_match2 :selected').val(); var myChoice3 = $('#form_match3 :selected').val(); if((myChoice >= 2)&&(myChoice2 >= 2)) { $('#form_match3').attr('disabled','disabled'); } else{ $('#form_match3').attr('disabled',false); if((myChoice2 >= 2)&&(myChoice3 >= 2)) { $('#form_match1').attr('disabled','disabled'); } else{ $('#form_match1').attr('disabled',false); } }; }); Но в этом случае надо задавать конкретные варианты,а таких вариантов более 50000 тысяч.Есть ли какой способ упростить этот процесс?Помогите пожалуйста! |
можно так
выбери 5 в своей форме - остальные блокируются выбери меньше 5 - все разблокируются
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-git.js'></script>
<script>
$(function(){
$('#form').change(function(){
var allSelect = $('select', this), // все select этой формы
more1 = allSelect.filter(function () { // все select у которых value больше 1
return $(this).val() > 1;
});
if (more1.length > 4) { // если таких 5 либо больше
allSelect.not(more1).attr('disabled', 'disabled');
} else {
allSelect.removeAttr('disabled'); // иначе все select делаем доступными
}
});
});
</script>
</head>
<body>
<form name="matchform" id = "form" method="post" action="">
<label for="nh1" id = "ga1">Первая</label>
<select name="menu" id="form_match1">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh2" id = "game2">Вторая</label>
<select name="menu2" id="form_match2">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh3" id = "ga3">Третья</label>
<select name="menu3" id="form_match3">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh4" id = "ga4">Четвертая</label>
<select name="menu4" id="form_match4">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh5" id = "ga5">Пятая</label>
<select name="menu5" id="form_match5">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh6" id = "ga6">Шестая</label>
<select name="menu6" id="form_match6">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh7" id = "ga7">Седьмая</label>
<select name="menu7" id="form_match7">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh8" id = "ga8">Восьмая</label>
<select name="menu8" id="form_match8">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh9" id = "ga9">Девятая</label>
<select name="menu9" id="form_match9">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh10" id = "ga10">Десятая</label>
<select name="menu10" id="form_match10">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh11" id = "ga11">Одинадцатая</label>
<select name="menu11" id="form_match11">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<label for="nh12" id = "ga12">двенадцатая</label>
<select name="menu12" id="form_match12">
<option value="1"></option>
<option value="2">позиция1</option>
<option value="3">позиция2</option>
<option value="4">позиция3</option>
</select>
<input type="submit" name="knopka" id="knopka" value="ОК"/>
</form>
</body>
</html>
|
ааааааа Pavel M. спасибо огромное!!!Я уж думал эту траблу не решит никто.
|
можно и с чекбоксами
начни делать пример и, думаю, тебе помогут |
Спасибо!
|
Народ подскажите что в этой функции не так?Поидее что то подобное и должно быть:
$(document).ready(function() {
var checkedboxes = $('input.onlyfive:checked');
if (checkedboxes.length == 5) {
checkedboxes.attr('disabled','disabled')
}
else{
return false};
});
Вот сама форма: <form name="matchform2" id = "form9" method="post" action=""> <input name = "sample_1" value="1" type="checkbox" /> <input name = "sample_1" value="2" type="checkbox" /> <input name = "sample_1" value="3" type="checkbox" /> <input name = "sample_1" value="4" type="checkbox" /> <input name = "sample_1" value="5" type="checkbox" /> <input name = "sample_1" value="6" type="checkbox" /> <input name = "sample_1" value="7" type="checkbox" /> <input name = "sample_1" value="8" type="checkbox" /> <input name = "sample_1" value="9" type="checkbox" /> <input name = "sample_1" value="10" type="checkbox" /> </form> Принцип тот же,выбрали 5 чекбоксов и форма заблокирована,выбрали меньше и форма доступна. |
Вам Pavel M. написал рабочий пример, сравните его и ваш код
|
ну если допустим сделать так:
$(function(){
$('#form9').change(function(){
var input = $('input', this),
more1 = input.filter(function () {
return $(this).val() > 4;
});
if (more1.length > 4) {
input.not(more1).attr('disabled', 'disabled');
} else {
input.removeAttr('disabled');
}
});
});
То блокируются первые 4 чекбокса и обратно уже не разблокировать |
На онклик чекбокса повесить проверку количества выбранных - если их больше, чем допустимо - не отмечать чекбокс
|
del
|
| Часовой пояс GMT +3, время: 03:34. |