Javascript pomoč
 
Gogy 7. okt 2012 00:23:35 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#1

Zdravo druščina



imam manjši problemček. Malo je že pozno in nimam več idej kako poiskat tole na googl-u, ker mi meče drugačne stvari ven.



Imam formo in v njej takole array drop-downov.



Kako bi preveril ali obstajata dva z enakim izbranim itemom?


<select name='stm_num[]'>
<select name='stm_num[]'>
<select name='stm_num[]'>
<select name='stm_num[]'>

Na tej sliki obstajata dva. To pa bi rad preveril on submit in obvestil uporabnika da preveri. Opozoril bi ga tudi v primeru, če ni izbral STM in če je čas v katerem izmed teh zraven 0.

<select name='stm_time[]'>

<select name='stm_time[]'>

<select name='stm_time[]'>

<select name='stm_time[]'>



Hvala za pomoč.


všeč(0) ni všeč(0) spam(0)
 
domen555 7. okt 2012 09:30:44 Pridružen od:
6. feb 2010
114 objav
75 16 3
#2

google: javascript form validation / ajax form validation



Načeloma se tega lahko lotiš client-site(javascript) ali server-side(ajax).



Client-site lahko zelo hitro rešiš je pa manj varno. Kar narediš je da napišeš Jquery funkcijo on Submit.



primer:

$('#myform').on('submit', function () {

if......

});

nato pa notri implementiraš nekaj takega:http://stackoverflow.com/questions/1564700/fastest-way-to-detect-if-duplicate-entry-exists-in-javascript-array



Upam da sem razumel uprašanje :-)


všeč(1) ni všeč(0) spam(0)
 
Gogy 7. okt 2012 11:09:10 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#3

Hvala domen555, sem že prišel bližje rešitvi danes zjutraj, čeprav se že lep čas ukvarjam s tem, zakaj mi v DIV ne izpiše vrednosti.



Želim jo pa vpisat takole:


document.getElementById('sumtime').innerHtml = "TO VPISI V sumtime HTML ID";

v


print "<table>";
print "<tr>";
print "<td>";
print "TOTAL: ";
print "</td>";
print "<td>";
print "<div id='sumtime'>TUKAJ NAJ BI MI IZPISALO KODO IZ JS</div>";
print "</td>";
print "</tr>";
print "</table>";

Firebug mi tudi ne pokaže nobene napake, samo enostavno ne izpiše.


všeč(0) ni všeč(0) spam(0)
 
krifa 7. okt 2012 11:36:03 Pridružen od:
9. feb 2010
402 objav
401 54 6
#4

zakaj ne delaš z JQuery? v tvojem primeru verjetno javascript prej pokličeš in se vmes še kaj loada, tako da ne zazna div-a.



$(function(){

$("#sumtime").text("TO VPISI V sumtime HTML ID");

})


všeč(4) ni všeč(0) spam(0)
Prevajanje - prevajalska agencija pravo-prevajanje.si
Awesome jobs for awesome people: Dlabs jobs
 
Mešetar 7. okt 2012 11:37:02 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#5

  1. uporabljaj jQuery

  2. v tvojem primeru se zgleda js izvaja preden je dom element... in ga ne najde...tak da js izvedi samo takrat, ko je html ce cisto formiran



uff. miutko prepozen s skoraj istim odgovorom [:D]


všeč(3) ni všeč(0) spam(0)
 
blackmamba 7. okt 2012 12:05:38 Pridružen od:
4. mar 2008
559 objav
392 25 11
#6

"innerHTML" je case insensitive, zato ne sme biti "innerHtml"


všeč(2) ni všeč(0) spam(0)
 
Gogy 7. okt 2012 12:25:27 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#7

blackmamba, to je to :)



javascript ne javi takih smešnih, hkrati pa jih ne upošteva oz. ne prikaže :)



Sem razmišljal, da bi uporabil jQuery, vendar je na tem sistemu bilo vse pisano že od prej samo v JS.



Osebno nisem veliko delal z jQuery in sem se mu malce izogibal, čeprav vem in vidim da je ravno zato narejen, da poenostavi reči. Vsekakor si ga bom bolj ogledal ko bo kaka minutka več časa.



Na tem sem zdaj izgubil nekaj ur časa in sprobaval na vse možne načine namesto da bi sprobal jQuery in verjetno iz prve uspel :)



krifa, Mešetar, moram vključit kako knjižnico v kodo prej, da bi uporabil to "bližnjico"?



Tisto za preverjanje dvojnikov v STM sem rešil s tem če bo kdo iskal...


Array.prototype.**find** = function(searchStr) {
var returnArray = false;
for (i=0; i<this.length; i++) {
if (typeof(searchStr) == 'function') {
if (searchStr.test(this*)) {
if (!returnArray) { returnArray = [] }
returnArray.push(i);
}
} else {
if (this*===searchStr) {
if (!returnArray) { returnArray = [] }
returnArray.push(i);
}
}
}
return returnArray;
}**

moj array **arrstmelements

potem pa kličeš


if(**arr_stm_elements**.**find**(stm_num*.value)) {
alert("You have duplicate items. Please check first");
return false;
} else {
arr_stm_elements*= stm_num*.value; // ce ni duplikat, ga dodamo
}***



všeč(0) ni všeč(0) spam(0)
 
Mešetar 7. okt 2012 13:12:06 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#8

jQuerija se le nauci...



selectorji so izredno mocna rec, concatenation tudi....



in ja, knjiznico moras prej vkljuciti v kodo, potem pa svojo jquery kodo vstavis v onload event callback funkcijo, kot je krifa pokazal...



na netu imas na tisoce zelo jasnih tutorialov za juery zacetnike...po 2 urcah bos se ze tolku po glavi, zakaj si se temu tolko casa izogibal


všeč(1) ni všeč(0) spam(0)
 
blackmamba 7. okt 2012 13:27:39 Pridružen od:
4. mar 2008
559 objav
392 25 11
#9

  1. Popravek mojega prejšnjega posta:


$prejšnji_post = str_replace("case insensitive", "case sensitive", $prejšnji_post);

Važno da ti je uspelo :)




  1. Moj glas gre tudi za jQuery


všeč(0) ni všeč(0) spam(0)
 
Gogy 7. okt 2012 19:30:41 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#10

@blackmamba, ma takoj mi je bilo jasno kaj si želel povedati :) mi je bilo čudno za prebrat ampak nisem niti pomislil, da bi to bilo zato, ker bi bilo napisano narobe :)


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se