Något är fel i koden nedan.
första gången funkar det fint
Andra gången så går den in i en loop och kommer inte ur...
Tanken är att varje gång du lägger till ett värde i en select box skall funktionen först gå igenom det som redan är inlagt för att se till att inga dubbletter sparas.
function addOption(optText,optValue,frm_name,lstBox_name)
{
if (document.frm.date.value != '') {
var Box = document.frm.Select1;
var i = 0;
var test = true;
while(i<Box.options.length)
{
if (Box.options[i].value = optValue)
test = false;
else
i++;
}
if (test = true) {
var newOption = new Option(optText,optValue);
var Box = document.forms[frm_name].elements[lstBox_name];
Box.options[Box.options.length] = newOption; }
else {
alert('fel'); }
}
else {
alert('You have to select a date!');}
}
Peter SMedlem sedan dec. 20025 484 inlägg Börja med att i denna
if (Box.options[i].value = optValue)
...ändra så att du testar för lika med (==) i stället för att utföra en tilldelning.
function addOption(optText,optValue,frm_name,lstBox_name) {
if (document.frm.date.value != '') {
var Box = document.frm.Select1;
var i = 0;
var test = true;
while(i<Box.options.length) {
if (Box.options[i].value = optValue) {test = false; break;}
i++;
}
if (test) {
var newOption = new Option(optText,optValue);
var Box = document.forms[frm_name].elements[lstBox_name];
Box.options[Box.options.length] = newOption;
}
else {
alert('fel');
}
else {
alert('You have to select a date!');
}
}
Lite ändringar, if frågan skall ha == och inte =,
sen om den hittar värdet så hoppar vi ur while med break;
får syntaxfel på en rad när jag laddar sidan
kan det fattas en "}" ?
Peter SMedlem sedan dec. 20025 484 inlägg Ja, det saknas en } innan den sista "else". Har du ändrat = till == i samtliga if-satser?
Peter S skrev:
Ja, det saknas en } innan den sista "else". Har du ändrat = till == i samtliga if-satser?
har fixat, men nu funkar inget =(
Kan man få lite HTML kod så man kan testa ?
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
function addOption(optText,optValue,frm_name,lstBox_name) {
if (document.frm.date.value != '') {
var Box = document.frm.Select1;
var i = 0;
var test = true;
while(1<Box.options.length) {
if (Box.options[i].value == optValue) {test = false; break;}
i++;
}
if (test) {
var newOption = new Option(optText,optValue);
var Box = document.forms[frm_name].elements[lstBox_name];
Box.options[Box.options.length] == newOption;
}
else {
alert('fel');
}
}
else {
alert('You have to select a date!');
}
}
function validateForm()
{
if (document.frm.Select1.options[0] != null){
var Box = document.frm.Select1;
var i = 0;
while(i<Box.options.length)
{
Box.options[i].selected = true;
i++;
}
return true;
}
else {
alert('You have to Add a Date!');
return false;
}
}
</script>
</head>
<body>
<form action="test.asp" method="post" name="frm" onSubmit="return validateForm()">
<table style="width: 500" border="0">
<tr>
<td class="style1" valign="top" style="width: 210px"><span lang="sv">Date: </span> <input type="text" name="date" /></td>
<td class="style1" valign="top" style="width: 81px"><span lang="sv">
<button name="fsdsdf" onClick="addOption(document.frm.date.value,document.frm.date.value,'frm','Select1');">Add -></button> <br />
<br />
<button name="Submit4" onclick="RemoveOption('frm','Select1');">
<- Remove</button> </span></td>
<td style="width: 390px">
<select name="Select1" style="width: 265px" size="5" multiple="multiple">
</select></td>
</tr>
<tr>
<td style="width: 210px"> </td>
<td style="width: 81px">
<input name="Submit1" type="submit" value="Next" /></td>
<td style="width: 390px">
</td>
</tr>
</table>
</form>
</body>
</html>
function addOption(optText,optValue,frm_name,lstBox_name)
{
if (document.frm.date.value != '')
{
var Box = document.frm.Select1;
var i = 0;
var test = true;
while(i<Box.options.length)
{
if (Box.options[i].value == optValue) {test = false; break;}
i++;
}
if (test)
{
var newOption = new Option(optText,optValue);
var Box = document.forms[frm_name].elements[lstBox_name];
Box.options[Box.options.length] = newOption;
}
else
{
alert('fel');
}
}
else
{
alert('You have to select a date!');
}
return false;
}
och på onclick:
return addOption(document.frm.date.value,document.frm.date.value,'frm','Select1')