PHP / Javascript ограничение количества флажков - PullRequest
0 голосов
/ 03 мая 2010

Я пытаюсь ограничить количество флажков, которые могут быть отмечены, в этом случае можно установить только 3. При использовании простого HTML это работает нормально. Код можно увидеть ниже.

Пример HTML

<td ><input type=checkbox name=ckb value=2 onclick='chkcontrol()';></td><td>Perl</td>

Функция Javascript

<script type="text/javascript">  
function chkcontrol(j) {  
var total=0;
for(var i=0; i < document.form1.ckb.length; i++){
if(document.form1.ckb[i].checked){  
total =total +1;}  
if(total > 3){  
alert("Please Select only three")       
document.form1.ckb[j].checked = false;  
return false;
}  
}    
}  
</script>

Проблема возникает при замене фиксированных значений HTML значениями из базы данных MYSQL. Вся информация отображается правильно и может быть размещена на другой странице с помощью кнопки отправки. Однако, похоже, что «значение», присвоенное каждой записи из базы данных, тоже не соответствует функции javascript.

<td><input name="checkbox[]" type="checkbox" value="<?php echo $rows['TCA_QID'];?>" onclick="chkcontrol();"></td>

Я попытался изменить имя в функции javascript, чтобы оно совпадало с именем 'checkbox'. Любой совет будет с благодарностью принят

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 мая 2010
<script type="text/javascript">
<!--
//initial checkCount of zero
var checkCount=0

//maximum number of allowed checked boxes
var maxChecks=3

function setChecks(obj){
//increment/decrement checkCount
if(obj.checked){
checkCount=checkCount+1
}else{
checkCount=checkCount-1
}
//if they checked a 4th box, uncheck the box, then decrement checkcount and pop alert
if (checkCount>maxChecks){
obj.checked=false
checkCount=checkCount-1
alert('you may only choose up to '+maxChecks+' options')
}
}
//-->
</script>

</head>

<body>
<form>
Option1 <input type="checkbox" id="check1" onclick="setChecks(this)"><br />
Option2 <input type="checkbox" id="check2" onclick="setChecks(this)"><br />
Option3 <input type="checkbox" id="check3" onclick="setChecks(this)"><br />
Option4 <input type="checkbox" id="check4" onclick="setChecks(this)"><br />
Option5 <input type="checkbox" id="check5" onclick="setChecks(this)"><br />
Option6 <input type="checkbox" id="check6" onclick="setChecks(this)"><br />

</form>
</body> 
0 голосов
/ 03 мая 2010

Во второй версии name вашего элемента input имеет значение "checkbox []", но в вашей функции JavaScript вы ищете элемент с name из ckb. Функция JavaScript не может найти ваше поле, если вы указываете, что оно ищет неправильное имя.

Вы говорите, что пытались изменить это. Что случилось, когда ты попробовал это? Убедитесь, что вы называете элемент «ckb», а не «ckb []».

Вы смотрели на значения флажков в сгенерированном HTML для страницы? Они соответствуют тому, что вы ожидаете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...