webForumDet fria alternativet

Lägga till och tabort vid onclick

12 svar · 471 visningar · startad av icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#1

Hej igen.

Nu sitter jag i Javascript-träsket och kollar mig omkring igen :)
Jag har ett antal checkboxar på en sida, nu skulle jag vilja att när man klickar i en av dessa så ska valuet i denna visas i en textbox. Detta är inga problem men hur gör jag för att tabort värdet om jag klickar ur checkboxen igen??

mv icaaq

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

document.foo.bar.value=(document.foo.bar.value=='Hej')?'':'Hej'
Testa detta i din funktion.

icaaqMedlem sedan okt. 20005 273 inlägg
#3

Jag vet inte hur jag ska göra. Min funktion ser ut som följer

[red]
function bookDisplay(a){
	document.getElementById('SelectedDisplays').value=a;
	}

onclick="bookDisplay(this.value)"
[/red]

mv icaaq

Jesper TMedlem sedan nov. 20017 144 inlägg
#4

Det kanske är lite ryckt ur sitt sammanhang och jag fattar kanske inte helt hur det skall vara, men här är två förslag:

<script>
function bookDisplay(a){

	document.foo.bar.value=(document.foo.bar.value==a)?'':a;

	}
</script>

Förslag 1<br>
<input type="radio" name="radio1" onclick="bookDisplay(this.value)" value="Hej">
<input type="radio" name="radio2" onclick="bookDisplay(this.value)" value="Du">
<input type="radio" name="radio3" onclick="bookDisplay(this.value)" value="Glade">

<form name="foo">
<input type="text" name="bar">
</form>

<script>
function bookDisplay_(a){
	document.foo_.bar_.value=a;

	}
</script>

Förslag 2<br>
<input type="radio" name="radio11" onclick="bookDisplay_(this.value)" value="Hej">
<input type="radio" name="radio11" onclick="bookDisplay_(this.value)" value=""><br>
<input type="radio" name="radio22" onclick="bookDisplay_(this.value)" value="Du">
<input type="radio" name="radio22" onclick="bookDisplay_(this.value)" value=""><br>
<input type="radio" name="radio33" onclick="bookDisplay_(this.value)" value="Glade">
<input type="radio" name="radio33" onclick="bookDisplay_(this.value)" value="">

<form name="foo_">
<input type="text" name="bar_">
</form>
PalleMedlem sedan apr. 20003 174 inlägg
#5

En variant att labba med. :)

[red]<script type="text/javascript">

var arrOutput = new Array()
function bookDisplay(frm,field)
{
	objTextfield = document.getElementById('SelectedDisplays');
	objCheckbox = frm(field);
	if(objCheckbox.checked)
	{
		arrOutput[field] = frm(field).value;
	}
	else
	{
		arrOutput[field] = '';
	}
	objTextfield.value = arrOutput;
}

</script>

...

<form>
	<input type="checkbox" name="1" value="Test-text nummer 1" onclick="javascript:void(bookDisplay(this.form,this.name));"> Text1<br>
	<input type="checkbox" name="2" value="Test-text nummer 2" onclick="javascript:void(bookDisplay(this.form,this.name));"> Text2<br>
	<input type="checkbox" name="3" value="Test-text nummer 3" onclick="javascript:void(bookDisplay(this.form,this.name));"> Text3<br>
	<input type="text" id="SelectedDisplays">
</form>[/red]
icaaqMedlem sedan okt. 20005 273 inlägg
#6

Nja ....Det är så här att jag har en mässa där kunder ska gå in och boka mässplatser. Det gör dem via checkboxar, när de klickat i en checkbox så vill jag att värdet i den hamnar i en input text. klickar kunden i flera checkboxar så ska alla de värdena hamna i inputen.

Dock så om kunden klickar ur en checkbox så vill ju jag att det värdet tas bort ur inputen.

Förstår ni hur jag menar ?

mv icaaq

PalleMedlem sedan apr. 20003 174 inlägg
#7

..är det inte så min kod fungerar? :OO

PalleMedlem sedan apr. 20003 174 inlägg
#8

Optimerad även för ex. Mozilla.. ;)

[red]<script type="text/javascript">

var arrOutput = new Array()
function bookDisplay(fieldObj)
{
	var strOutput = '';
	var objTextfield = document.getElementById('SelectedDisplays');
	if(fieldObj.checked)
	{
		arrOutput[fieldObj.id.substr(2,fieldObj.id.length)] = fieldObj.value;
	}
	else
	{
		arrOutput[fieldObj.id.substr(2,fieldObj.id.length)] = null;
	}
	for (var i=0; i<arrOutput.length; i++)
	{
		if(arrOutput[i])
		{
			if(arrOutput[i] != '') strOutput += arrOutput[i] +',';
		}
	}
	objTextfield.value = strOutput;
}

</script>

...

<form>
<input type="checkbox" id="cb1" value="Test-text nummer 1" onclick="bookDisplay(this);"> Text1<br>
<input type="checkbox" id="cb2" value="Test-text nummer 2" onclick="bookDisplay(this);"> Text2<br>
<input type="checkbox" id="cb3" value="Test-text nummer 3" onclick="bookDisplay(this);"> Text3<br>
<input type="text" name="SelectedDisplays" id="SelectedDisplays" style="width: 400px;">
</form>[/red]
icaaqMedlem sedan okt. 20005 273 inlägg
#9

Palle skrev:

..är det inte så min kod fungerar? :OO

Den sista du gav mig är perfekt :D

mv icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#10

nja jag var lite förhastad i att säga att den var perekt. :OO

Kolla in denna http://www.telemastic.se/expo/booking/ och så bockar ni i E-5, E-6 och sedan D-5, D-6 så ser ni felet .....

hur kan man åtgärda det?

mv icaaq

Jesper TMedlem sedan nov. 20017 144 inlägg
#11

En variant är att sätta ett löpnummer på checkboxens id.
Tänk på att börja med en sträng i id:t.
ex.

<input type="checkbox" name="displayName" value="A-1" id='plats-1'  onclick="bookDisplay(this);"/>
<input type="checkbox" name="displayName" value="A-2" id='plats-2'  onclick="bookDisplay(this);"/>
<input type="checkbox" name="displayName" value="B-1" id='plats-3'  onclick="bookDisplay(this);"/>
osv...
Jesper TMedlem sedan nov. 20017 144 inlägg
#12

/r skojjade bara. :e

PalleMedlem sedan apr. 20003 174 inlägg
#13

Du måste ha unika numreriska ID på fälten från 3´e bokstaven och bakåt..

132 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)