Internetbureau Holder
3x
Applaus

Rubijntje - ma 02 okt 06 13:42

Ik heb een grote lijst (zo’n 4000 objecten) waar de gebruiker er één uit moet selecteren. Ik gebruik nu een autocomplete veld (text_field_with_auto_complete). Op zich prachtig, maar het is niet restrictief. De gebruiker kan (als hij dat wil) nog steeds van alles invullen wat niet overeenkomt met iets uit de lijst. Heeft iemand een idee hoe je een gebruiker een geforceerde keuze kan laten maken uit een grote lijst (zonder de hele lijst in één keer naar de gebruiker te sturen)?

Pencil

Daniel Wijnands - wo 18 okt 06 19:55

Mijn fout :)

Pencil

Chris Obdam - wo 18 okt 06 12:33

Wat een zooitje is het hier! :-)

Lamp_off

Daniel Wijnands - di 17 okt 06 16:41

Ok poging 2 in een pre


<%= hidden_field 'invoice','customer_id' %>
		
			<input autocomplete="off" id="customer_name" name="customer[name]" \
			size="28" type="text" value="<%= @invoice.customer.name if @invoice.customer %>" ONKEYPRESS="reset_auto_complete_fields(event,['invoice_customer_id','invoice_contact_id'])"/>
			<div class="auto_complete" id="customer_name_auto_complete"></div>
			      <script type="text/javascript">
			        new Ajax.Autocompleter('customer_name', 
			'customer_name_auto_complete',
			'/invoice/customer_auto_complete_for_name',
			        { minChars: 2,
			          frequency: 0.15,
			          updateElement: function(selected) {
			          Element.cleanWhitespace(selected);
			          dn = selected.childNodes;
			          $('customer_name').value = dn[0].firstChild.nodeValue;
			          $('invoice_customer_id').value = dn[3].firstChild.nodeValue;
			          new Ajax.Updater('contact', '/invoice/contact/?invoice[customer_id]=' + dn[3].firstChild.nodeValue , {asynchronous:true, evalScripts:true})
			        } } );
			      </script>

Lamp_off

Daniel Wijnands - di 17 okt 06 16:25

Ik gebruik een text-field met lookup die een hidden input vult, je kunt dan gewoon controleren op een dat hidden id, of het een bestaande waarde is.

Lap code :

Klant

<%= hidden_field ‘invoice’,‘customer_id’ >

<input autocomplete=“off” id=“customer_name” name=“customer[name]” \
size=“28” type=“text” value="<
= @invoice.customer.name if @invoice.customer %>" ONKEYPRESS=“reset_auto_complete_fields(event,[‘invoice_customer_id’,‘invoice_contact_id’])”/>


Lamp_off

Chris Obdam - di 03 okt 06 08:06

Je zou het zelf wel restrictief kunnen maken met een validation.. Dan controlleer je bij het opslaan of de juiste waarde is ingevuld, daarnaast zou je het zelf ook in Javascript kunnen maken. Maar dit kan niet met standaard functionaliteit, zul je toch nog even aan de slag moeten! :-)

Applaus

Milk - ma 02 okt 06 21:27

Applaus

Chiel Wester - ma 02 okt 06 17:00

Ja goede vraag, ik weet het antwoord jammer genoeg ook niet, volgens mij heb je geen andere mogelijkheid als een auto_complete_field.

Dus als iemand een betere oplossing heeft, graag…

Applaus

Milk - ma 02 okt 06 15:29

Plaats je reactie







Welcome to Holland On Rails

This weblog is the official Ruby techblog from the guys at Holder, a Ruby development company. Holder is also the company behind the RubyAndRails Europe Conference in Amsterdam.

Recente Jobs


Bekijk alle jobs »»

Gereedschapskist

Onmisbare tools voor
iedere developer!
Ruby On Rails
Framework voor de web 2.0 developer. Eindelijk vooruitgang!
TextMate
Editor for true pro's
Typ, tab, top :-)
Nee, niet voor Win.
Made On A Mac
En nou is het over met die saaie grijze Windows bak van je!

Auteurs op deze site

Chris Obdam

'Less is more' evangelist, past dit ook dagelijks toe op zijn tandenborstel.

Chiel Wester

Snelheidswonder op Ruby wielen. Leuk om mee te pair-programmen ;-) Recommend Me

Stephan Kaag

Het eerste Rails coreteam- member uit Nederland? Rails evangelist van het eerste uur.

Paul Engel

Én Rails programmeren én interfaces designen? Je zou hem superman kunnen noemen..

Dax Huiberts

Official Zip-Programmer, skinny code is helemaal zijn ding. Haalt meer code weg dan dat er bij komt.

Freek Monteban

Het nieuwste telg uit het Holland on Rails nest! Hij doet niets anders meer!

Johan Vermeulen

De stylesheet-koning uit de kop van Noord-Holland!