input value nem megy Firefoxban.
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: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
■ a kód:
var nevkereso = Class.create();
nevkereso.prototype = {
initialize: function(input_id, button_id, eredmeny_div, div_class){
this.input = $(input_id);
this.eredmeny_div = $(eredmeny_div);
this.div_class = div_class;
this.button = $(button_id);
Event.observe(this.input, 'keyup', this.nevet_keres.bind(this), false);
},
nevet_keres: function(){
if(this.input.value == '') this.button.setAttribute('disabled', true);
var input_val = this.input.value;
var pars = 'text=' + base64enc(escape(input_val));
var url = 'http://localhost/laser/neveket_keres.php?';
var myAjax = new Ajax.Updater(
this.eredmeny_div,
url,
{
method: 'post',
parameters: pars,
onFailure: this.reportError.bind(this),
onComplete: this.registerHandlers.bind(this),
onLoading: this.show_load.bind(this)
});
},
reportError: function(){
alert('A szerver oldalon hiba történt.');
},
registerHandlers: function(){
var divs = document.getElementsByClassName(this.div_class);
divs.each(
function(elem, index){
Event.observe(elem, 'mouseover', this.over.bindAsEventListener(this), false);
Event.observe(elem, 'mouseout', this.out.bindAsEventListener(this), false);
Event.observe(elem, 'click', this.click.bindAsEventListener(this), false);
}.bind(this)
)
},
show_load: function(){
},
over:function(e){
var source = Event.element(e);
source.className = 'lookup_nev_over';
Event.stop(e);
},
out: function(e){
var source = Event.element(e);
source.className = 'lookup_nev';
Event.stop(e);
},
click: function(e){
var source = Event.element(e);
this.input.value = source.firstChild.nodeValue;
this.button.setAttribute('disabled', false);
Event.stop(e);
}
}
A segítséget előre is köszönöm.
Laci
senki sem futott még ilyenbe?
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?
azt így ránézésre
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
megvan!
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
szivesen ^^,
http://weblabor.hu/blogmarkok/14876
és imádkozni hozzá esténként jó javascript fejlesztő módjára :))))
üdv t