사용자가 다중 선택 필드에서 최대 X 개까지 옵션을 선택할 수있는 양식이 있습니다. 사용자가 X 항목보다 큰 항목을 선택하면 마지막으로 선택한 항목의 프롬프트와 선택이 취소됩니다.복수 선택 값 오류
이전의 다중 선택으로 경고 메시지가 표시되면 문제가 발생합니다.
양식에 4 개의 다중 선택이 있으므로 세 번째 다중 선택 또는 최대 숫자에 이미 도달 한 경우 이전 다중 선택으로 이미 도달 한 경우 다음 선택에 대한 오류를 던집니다. 사용자가 올바른 번호를 선택합니다.
다음은 코드 단편입니다. 페이지의 선택의 나머지는 동일한 방식으로 구축하지만 서로 다른 이름을 사용하고 있습니다 : 자바 스크립트가 경고 여기
<select multiple name="seasons[]" size="6" id="seasons" onChange="countSelected(this,5)">
<option value=0>Hold CTRL to select more than one</option>
<?
$ftw = mysql_query("SELECT s.seasonId, s.type FROM seasons s ORDER BY s.seasonId ASC");
while ($line = mysql_fetch_array($ftw)) {
$queried = mysql_query("SELECT seasonId FROM selectedSeason where seasonId = '$line[0]' AND id = '$objItem->itemId'");
if(mysql_fetch_row($queried))
echo "<option selected value=\"$line[0]\">". $line[1] ."</option>";
else
echo "<option value=\"$line[0]\">". $line[1] ."</option>";
}
?>
</select>
을 :
var selectedOptions = [];
function countSelected(select,maxNumber){
for(var i=0; i<select.options.length; i++){
if(select.options[i].selected && !new RegExp(i,'g').test(selectedOptions.toString())){
selectedOptions.push(i);
}
if(!select.options[i].selected && new RegExp(i,'g').test(selectedOptions.toString())){
selectedOptions = selectedOptions.sort(function(a,b){return a-b});
for(var j=0; j<selectedOptions.length; j++){
if(selectedOptions[j] == i){
selectedOptions.splice(j,1);
}
}
}
if(selectedOptions.length > maxNumber){
var throwAlert = true;
select.options[i].selected = false;
selectedOptions.pop();
}
}
if(throwAlert == true){
alert('You may only choose '+maxNumber+' options!!');
document.body.focus();
}
}
계절이 계절 [] 그래서 게시 할 수 있어야합니다 PHP에 여러 값. 나는 자바 스크립트로 데이터를 게시하거나 검색하는 데 아무런 문제가 없다. 오류는 IE, FF 및 Safari에서 발생하지만 Chrome에서는 발생하지 않습니다.
모든 아이디어는 매우 중요합니다.