ugrás a tartalomhoz

input value nem megy Firefoxban.

Anonymous · 2006. Szep. 17. (V), 14.39
Egy automatikus kiegészítőt készítek, ami kilistázza a kereső mezőbe beírt stringgel kezdődő neveket. Ott van a gond, hogy a listában egy adott névre kattintva azt szeretném, hogy az a név kerüljön bele a kereső mezőbe. IE alatt működik, de FF alatt nem kerül bele ez az érték a szövegdobozba. Fogalmam sincs miért, lehet, hogy egy orbitális elnézés az egész.

a kód:
  1. var nevkereso = Class.create();  
  2.    nevkereso.prototype = {  
  3.       initialize: function(input_id, button_id, eredmeny_div, div_class){  
  4.          this.input = $(input_id);            
  5.          this.eredmeny_div = $(eredmeny_div);  
  6.          this.div_class = div_class;      
  7.          this.button = $(button_id);       
  8.          Event.observe(this.input, 'keyup'this.nevet_keres.bind(this), false);          
  9.       },  
  10.         
  11.       nevet_keres: function(){   
  12.           if(this.input.value == ''this.button.setAttribute('disabled'true);  
  13.           var input_val = this.input.value;           
  14.           var pars = 'text=' + base64enc(escape(input_val));  
  15.           var url = 'http://localhost/laser/neveket_keres.php?';            
  16.             var myAjax = new Ajax.Updater(  
  17.                   this.eredmeny_div,   
  18.                   url,   
  19.                   {  
  20.                       method: 'post',   
  21.                       parameters: pars,  
  22.                       onFailure: this.reportError.bind(this),  
  23.                       onComplete: this.registerHandlers.bind(this),  
  24.                       onLoading: this.show_load.bind(this)  
  25.                   });                                    
  26.       },  
  27.         
  28.       reportError: function(){  
  29.          alert('A szerver oldalon hiba történt.');  
  30.       },  
  31.         
  32.       registerHandlers: function(){     
  33.          var divs = document.getElementsByClassName(this.div_class);               
  34.          divs.each(  
  35.             function(elem, index){  
  36.                Event.observe(elem, 'mouseover'this.over.bindAsEventListener(this), false);   
  37.                Event.observe(elem, 'mouseout'this.out.bindAsEventListener(this), false);  
  38.                Event.observe(elem, 'click'this.click.bindAsEventListener(this), false);  
  39.             }.bind(this)  
  40.          )           
  41.       },  
  42.         
  43.       show_load: function(){  
  44.       },  
  45.         
  46.       over:function(e){  
  47.          var source = Event.element(e);  
  48.          source.className = 'lookup_nev_over';  
  49.          Event.stop(e);  
  50.       },  
  51.         
  52.       out: function(e){  
  53.          var source = Event.element(e);  
  54.          source.className = 'lookup_nev';  
  55.          Event.stop(e);  
  56.       },  
  57.         
  58.       click: function(e){  
  59.          var source = Event.element(e);                                                  
  60.          this.input.value = source.firstChild.nodeValue;          
  61.          this.button.setAttribute('disabled'false);  
  62.          Event.stop(e);                                                 
  63.       }              
  64. }  
A 'click' tagfüggvény this.input.value = source.firstChild.nodeValue; sorát nem veszi a FF. Mi lehet a gond?

A segítséget előre is köszönöm.

Laci
 
1

senki sem futott még ilyenbe?

Anonymous · 2006. Szep. 18. (H), 14.15
annyit még hozzátennék, hogy az alert(source.firstChild.nodeValue) rendesen kiadja az input mezőbe írandó nevet, az input mezőbe is bekerül valami láthatatlan, mert a kurzor odébb ugrik. Mindez FF alatt, IE-ben rendesen működik.
Mi lehet ez?
2

azt így ránézésre

toxin · 2006. Szep. 18. (H), 14.59
meg nem mondom, de

fx/FireBug/debuggerében teszel oda egy töréspontot és megnézed
http://encytemedia.com/blog/articles/2006/05/12/an-in-depth-look-at-the-future-of-javascript-debugging-with-firebug

;) (alert helyett meg console.log :) )

üdv t

ui: http://wiki.script.aculo.us/scriptaculous/show/Ajax.Autocompleter kukk meg
3

megvan!

Anonymous · 2006. Szep. 18. (H), 17.26
Köszönöm a segítséget, egy kis debugolás után rögtön napvilágra került a turpisság.
A szerver által visszaküldött HTML smartyval készült, így benne maradt az összes sortörés és szóköz, persze, hogy a szövegmező nem ette a dolgot, mivel valami ilyesmi értéket kapott:

" \n \n érték"

Okulásul, ha valaki ilyenbe belefutna:

ilyen volt:

a {$nevsor[num].name} érték menne a szövegmezőbe
  1. {section name=num loop=$nevsor}    
  2. <div id="lookup_nevsor_{$nevsor[num].id}" class="lookup_nev">  
  3.    {$nevsor[num].name}  
  4. </div>  
  5. {/section}  
és így, egy sorba összehúzva már működik is:
  1. {section name=num loop=$nevsor}                               
  2.    <div id="lookup_nevsor_{$nevsor[num].id}" class="lookup_nev">{$nevsor[num].name}</div>  
  3. {/section}    
4

szivesen ^^,

toxin · 2006. Szep. 18. (H), 17.50
aztán el ne feljtsd megnézni Joe Hewitt videóját a FireBugról,

http://weblabor.hu/blogmarkok/14876

és imádkozni hozzá esténként jó javascript fejlesztő módjára :))))

üdv t