Jump to content
php.lv forumi

Meklētājs iekš list box!


Sasa

Recommended Posts

finder.flist(document.getElementById('inputa_lauka_id'),'list'+i);

Bet tad neizmanto pirmo, bet #11 posta skriptu

 

PS. nākošreiz centies paskaidrot skaidrāk jau pašā sākumā. Apraksti ar darbības piemēru. Kaut grafiku uzzīmē.

Edited by indoom
Link to comment
Share on other sites

  • Replies 35
  • Created
  • Last Reply

Top Posters In This Topic

Nu tad taisot to jauno listboxi pieliec to indoom uzrakstīto filter funkciju uz taimouta šim listboksim. Kur problēma?

 

nē tā nesanāks, jo vienīgais variants ir nodot to mainīgo tai funkcikai kura meklē listbox'ī pēc ievadītā, jo ma nte visā pamatā ir access DAP un tās nav ģererāts list bojis bet gan no access tabulas pa'menta rinda kurai ir listbox.

 

te ri noladējams tas ko gribu darbūt gatavu: http://myfreefilehosting.com/f/46306ade4a_1.51MB

arhīvu vēlam atarhivēt c:\web_katalogs

ar Enteru pielikas klāt jauni list boxi bet meklētājs jo projām meklē pirmajā

Edited by Sasa
Link to comment
Share on other sites

Es nesaprotu kāds sakars tur tev ir no kurienes listboksis ir nācis. Vai tas ģenerēts bijis vai nē. Tak tas vienalga - listboksis ir un ir listboksis - parasts select html elements. Un kāda gan problēma parastam html elementam pielikt klāt eventu?

Link to comment
Share on other sites

tā izskatās mani listboxi

th.d1be882acc.jpg

 

un ja es meklētāja kodubiki modificēju uz šādu:

function (el) {
	if (this.ftimer) { clearTimeout(this.ftimer); }
	if (!this.list) {
	this.list = document.all('Kods',2); //2 <- mainīt, lai meklētu nākamajā list boxi pēc kārtas skaita		
}

 

tik tagad pirmais listboxis ir #0 un tajā nepakam negrib meklēt, ja ir 1 tad meklē otrajā pēc skaita. Kā varētu pārveidot to meklētāja skriptu kurā bija piedarbināts Enters, lai palielina man '2'.

 

Kapē šādi nestrādā?

 

if (!this.list) {		
	i = 0;
	if (window.event.keyCode == 13){
	i = i + 1;
	this.list = document.all('Kods',i);
	}else{
	this.list = document.all('Kods',0);}
}

 

Kā lai sataisa, lai pie Enter nospiešanas nolasās jauna cookies vērtība:

function (e,el) {
	if (this.ftimer) { clearTimeout(this.ftimer); }
	if (!this.list) {	
	e = e || window.event;
	if ((e.keyCode ? e.keyCode : e.which) === 13) { 
		var index = getCookie('indx');
	}

	//alert(index);
	this.list = document.all('Kods',index);	

	}

tas viss ir joprojām no indoom.

Edited by Sasa
Link to comment
Share on other sites

Vai tik i tev nav lokāls mainīgais? Un tas vienmēr pieņem vērtību vai nu 0 vai nu 1 - atkarībā no tā vai if nosacījums attiecīgi ir false vai true.

Silti iesaku tev sākt lietot debugeri un kodu izpildīt pa soļiem.

Link to comment
Share on other sites

document.all('Kods',i)

 

Kas šis par pierakstu?

 

ID dokumentā var atkārtoties tikai 1 reizi. Nevar trīs elementiem iedot vienādus ID 'kods', tad protams tiks atrasts tikai pirmais.

Tāpēc liec klāt katram elementam klāt ciparu galā - 'kods1', 'kods2', 'kods3', un tad arī varēs tos atrast dokumentā ar document.getElementById('kods'+i);

 

Un izskatās, ka taisi, lai darbotos tikai uz IE?

Link to comment
Share on other sites

savādāk nesanāk taisīt, jo apaksā ir access un vēl visādas failu ierakstīšanas, lietots tiks lokāli! izmantoju IE, lai nevajadzētu visiem Access'u instalēt!

 

bet kā izskairdrot šādu gadījumu?:

th.d31d425d20.jpg

 

ja es nospiežu 5x Enter un tad mēģinu meklēt man viņš meklē pēdējajā listboxī!

 

Ja jābūt katram elementam savam ID, tad varbūt būtu risinājums pārnumurēt visus id='Kods' + i.

Edited by Sasa
Link to comment
Share on other sites

ok, sorr, tā kā document.all ir tikai IE, tad neesmu to izmantojis. Izrādās tur ir document.all('kods',i); Uz IE tad var veidot vairākus vienādus id.

if (!this.list) {		
	i = 0;
	if (window.event.keyCode == 13){
	i = i + 1;
	this.list = document.all('Kods',i);
	}else{
	this.list = document.all('Kods',0);}
}

Increments neizpildīsies, jo ir pārbaude vai this.list pastāv vai nē, un tāpēc izpildīsies tikai pirmajā reize, kad list nebūs izveidots. To incrementu liec kādā citā vietā.

Edited by indoom
Link to comment
Share on other sites

kur tam incrementam būs īstā vieta?

 

bet sāku taisīt ā ka pie texbox lauka editētāšanas pārsaucas visi Id='kods'

 

elementCount_pts_garums = document.all("Kods").length;
k=0;
for (i=0; i<elementCount_pts_garums; i++) { 
k++;
document.all('Kods',i).id = "Kods" + k;
}

 

tik nezinu kā tālāk!

 

this.list = document.getElementById('Kods2');

Edited by Sasa
Link to comment
Share on other sites

nja, dīvaini, ka teici sākumā, ka darbojas, jo izrādās uz IE option elementiem nemaz nevar display:none uzlikt vai kā citādi paslēpt. Var tikai izdzēst no saraksta. Bet tad, lai atjaunotu, jāpievieno pa jaunam.

Šo IE stulbumu nezināju, tāpēc kaut kā nepārbaudīju sākumā uz IE :(

Edited by indoom
Link to comment
Share on other sites

http://indoom.cgimage.lv/jstests/testautoIE.htm

 

Paskaties vai šis ir tas, ko domāji.

Ieraksti netiek izņemti ārā, bet pirmais, ko atrod tiek atzīmēts kā selected.

 

Nu vajadzētu darboties. Šis testēts uz IE6 un IE7

 

Kā arī visiem id jāliek vienāds nosaukums.

 

<input type="text" onkeyup="finder.flist(this,'Kods')" onchange="finder.flist(this,'Kods')" value="" >

 

Tavējais enter skripts nav vajadzīgs

Edited by indoom
Link to comment
Share on other sites


×
×
  • Create New...