Javascript pomoč
5 naročnikov
5 naročnikov
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č.
9 odgovorov
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 :-)
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.
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");
})
- uporabljaj jQuery
- 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]
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
}***
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
- Popravek mojega prejšnjega posta:
$prejšnji_post = str_replace("case insensitive", "case sensitive", $prejšnji_post);
Važno da ti je uspelo :)
- Moj glas gre tudi za jQuery