JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Gyorskeresés
Legfrissebb anyagok
Általános témák
LOGOUT.hu témák
- [Re:] [sziku69:] Szólánc.
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [Ndruu:] Segíts kereshetővé tenni a PH-s arcképeket!
- [Re:] [Sub-ZeRo:] Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- [Re:] [bitpork:] 2024 Phautós tali zaba táblázat
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [ubyegon2:] Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] Elektromos rásegítésű kerékpárok
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Téma összefoglaló
Hozzászólások
![](http://cdn.rios.hu/dl/faces/bulldog.gif)
Con Troll
senior tag
Sziasztok, MongoDB-vel szeretnék olyat csinálni, hogy a usertől békérek egy usernevet illetve egy profilnevet, ha profilnevet nem ad meg, akkor a default '[username]'s profile' legyen.
A gondom az, hogy a bevitt usernevet nem tudom sehogy sem elérni a default résznél. Mi lenne a helyes módja ennek? Köszönöm const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const User = new Schema({
_id: mongoose.Schema.Types.ObjectId,
username: {
type: String,
required: true,
unique: true,
},
profilename: {
type: String,
default: ??? ,
},
});
module.exports = mongoose.model('User', User);
[ Szerkesztve ]
![](http://cdn.rios.hu/dl/faces/own/dqdb.gif)
dqdb
nagyúr
Init hook segítségével tudod ezt megoldani:
User.post('init', user => {
if (!user.profilename) {
user.profilename = user.username + "'s profile";
}
});
[ Szerkesztve ]
tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek
![](http://cdn.rios.hu/dl/faces/cop.gif)
amdni
aktív tag
Üdv!
Az alábbi kód miért nem működik? Nem értem:
function UserFv ($connect, $username, $password){
$arr = array();
$sql = mysqli_query($connect, "SELECT id, username, password FROM users where username = '".$username."' and password = '".$password."' ") or die('username or password load error');
while($res = mysqli_fetch_array($sql))
{
array_push($arr,array('id'=>$res['id'],'username'=>$res['username'], 'password'=>$res['password'] ));
}
return $arr;
}
//eddig rendben lefut.
$tomb = UserFv ($connect, $username, $password);
echo $tomb['id');
Köszönöm a segítséget és a tanácsokat!
![](http://cdn.rios.hu/dl/faces/own/jim-y.gif)
Jim-Y
veterán
Ad1: ez php szoval ha javacriptes topikban teszed fel a kerdest akkor lehet kavarc van a fejedben, hogy hogyan is kene ezt futtatni szoval az is lehet a problema
Ad2: echo $tomb['id');
Itt van egy typo a vegen.
![](http://cdn.rios.hu/dl/faces/motorhead2.gif)
martonx
veterán
maximális respekt, amikor az annyira debilnek is válaszolsz, aki azt se tudja milyen nyelven programoz, és még a typo-ját is észreveszed helyette
Én kérek elnézést!
![](http://cdn.rios.hu/dl/faces/cop.gif)
amdni
aktív tag
Sorry, véletlenül tettem fel itt a kérdést. Az admint kérem hogy törölje.
![](http://cdn.rios.hu/dl/faces/cop.gif)
amdni
aktív tag
Köszi neked is az építő megjegyzést, de az ilyen jellegű hozzászólás mit a tiéd szerintem nem éri el a prohardver színvonalát.
[ Szerkesztve ]
![](http://cdn.rios.hu/dl/faces/m08.gif)
Panhard
tag
Sziasztok. Van egy ilyen json formátumom:[{"egy":"noname","ketto":"valami","harom":"03","negy":04,"ot":05,"hat":06},[{"param":4,"ido":5},{"param":16,"ido":17},{"param":13,"ido":67},{"param":15,"ido":30}]]
Online nézővel így néz ki:
Az első tömb soraira így tudok hivatkozni:
json[0].egy
json[0].ketto
json[0].harom
stb.
Hogyan tudok hivatkozni javascriptben a második tömb soraira? Így nem megy:
json[1][0].param
így sem:
json[1].param[0]
![](http://cdn.rios.hu/dl/faces/own/dnrenti.gif)
DNReNTi
őstag
Ebben az esetben a JSON egy ketelemu tomb. A JSON[0] egy objektum mig a JSON[1] egy ujabb tomb, benne objektumokkal. Elvileg a JSON[1][n].param
helyes hivatkozas lenne ra, de kiprobalni most nem tudom.
Szerk: 'n' az termeszetesen a tetszoleges indexet kivanja reprezentalni, ne konkretan n-et irj be.
[ Szerkesztve ]
but without you, my life is incomplete, my days are absolutely gray
![](http://cdn.rios.hu/dl/faces/del.png)
#57018880
törölt tag
Nekem működik [1][0] indexre, döntsd el, hogy a 06 szám vagy string, ha szám akkor ne legyen előtte 0 vagy legyen float.
![](http://cdn.rios.hu/dl/faces/m08.gif)
Panhard
tag
A 04,05,06 is string, csak a példából lemaradtak a macskakörmök.
Viszont a json[1][0].param
nem működik.
Ha alert()-el kiíratom a weblapra az eredményt, a json[1][0]
-ra undefined-et ír. A json[1][0].param
-ra fel sem jön az ablak.
![](http://cdn.rios.hu/dl/faces/m08.gif)
Doink
aktív tag
![](http://cdn.rios.hu/dl/faces/m08.gif)
Panhard
tag
Akkor csak nálam nem működik valamiért. Az első objektum értékeit ki tudom olvasni, csak a másodikat nem. Lehet hozzá köze annak, hogy a json-t egy php fájl generálja?
A javascript pedig így dolgozza fel:
$.getJSON("setup.php?eszkoz="+eszkoz, function (result) {kesz = result;
document.getElementById("username").innerHTML = kesz[0].username;
document.getElementById("eszkoz").innerHTML = eszkoz;
document.forms["myForm"]["p01"].value=kesz[0].upload_interval;
document.forms["myForm"]["p02"].value=kesz[0].minspeed;
document.forms["myForm"]["p03"].value=kesz[0].waitsleeptime;
document.forms["pidForm"]["pidt01"].value=kesz[1][0].ido;
document.forms["pidForm"]["pidt02"].value=kesz[1][1].ido;
document.forms["pidForm"]["pidt03"].value=kesz[1][2].ido;
document.forms["pidForm"]["pid01"].value=kesz[1][0].pid;
document.forms["pidForm"]["pid02"].value=kesz[1][1].pid;
document.forms["pidForm"]["pid03"].value=kesz[1][2].pid;
}
![](http://cdn.rios.hu/dl/faces/m08.gif)
Panhard
tag
Ha a php fájl kimenetét bemásolom a javascript fájlba ahogy a példában mutattad, ezzel kihagyom a $.getJSON() függvényt, akkor működik.
Szerintem utánaolvasok ennek a $.getJSON-nak, vagy/és átvariálom a php fájl json kimenetét, hogy ne legyen benne két objektum.
![](http://cdn.rios.hu/dl/faces/m08.gif)
Doink
aktív tag
Debuggerrel is nézted hogy mi történik?
[ Szerkesztve ]
![](http://cdn.rios.hu/dl/faces/c07.gif)
coco2
őstag
Sziasztok!
Google chrome környezetben keresek arra lehetőséget, hogy temérdek sok letöltött file-t helyben meg tudjak őrizni későbbi felhasználásra. Max 120 kbyte-os jpeg file-okról van szó, de azokból akár sok10ezrével lehet. Több 10 gigabyte-ig is nőhet a halmaz végül. Egy vastag réteg alkalmazás egyik igénye lenne, aminek az ötletét még csiszolgatom. Egyenlőre nem tudom biztosan, van-e olyan lehetőségem webes alapon is, vagy csak bináris alapon, és annak eldöntéséhez jól jönne a tanács.
Valami fejtágító anyag kellene összefoglaló jelleggel tartalom helyben tárolásának lehetőségeiről és korlátairól. Mi a legtöbb, ami elérhető?
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
![](http://cdn.rios.hu/dl/faces/m08.gif)
Panhard
tag
Megoldódott. A php-ban volt a hiba, az értéket egy string-ből szedem ki a substr()-el. Azt kellett átalakítani int-re. A json_encode()-hez be kellett írni a JSON_NUMERIC_CHECK opciót. Így már jó.
Köszönöm mindenkinek a segítséget.
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
Tudnátok ajánlani angulárhoz tutorialt, JWT token kezeléséhez? Amiket én találtam azok nem voltak valami részletesek
Gondolok itt arra, hogy ha megkapja a tokent, akkor valami session-t vagy mit hoz létre, míg le nem jár a token, és el legyenek választva az útvonalak autentikációhoz kötve
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
Ha lenne admin felhasználóm is, akkor arra mi a bevett gyakorlat? Pl ha ugyan azt az oldalt is láthatnák 1-2 plusz funcióval, copy paste a template, vagy ki kellene valahogy egészíteni?
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/m08.gif)
Doink
aktív tag
Templatebe is lehet if-et írni.
*ngIf="isAdmin()"
[ Szerkesztve ]
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
Erre én is gondoltam, de azt hittem túl egyszerű ez így
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
Mi lenne a jó megoldás, ha lejár a token?
Tönn megoldás van a fejemben, de nem tudom melyik a jobb, egyrészt a jwt tokenbe be van csomagolva a lejárati idő, amit gondolom lehetne figyelni minden kérés elött, ha lejárt akkor megújítja
vagy azt figyelni, hogy mikor ad vissza a szerver http401 et, és ha vissza ad, akkor vagy megújítás, vagy automatikusan a loginre ugrik
Szerintetek? Vagy más a bevett megoldás erre?
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/motorhead2.gif)
martonx
veterán
Szebb figyelni a lejárat idejét és még idő előtt újat kérni.
Én kérek elnézést!
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
ezt pontosan hogy érted?
Amit hirtelen találtam annak az alapja az, hogy ha 401 et kap vissza, és be volt jelentkezve, akkor csak kér egy új tokent
Vagy meg lehet azt oldani, hogy a háttérbe figyelné valami a lejárati dátumot, és ha lejár akkor kér egy újat?
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/motorhead2.gif)
martonx
veterán
Te írtad: "a jwt tokenbe be van csomagolva a lejárati idő, amit gondolom lehetne figyelni minden kérés elött, ha lejárt akkor megújítja"
Figyeled, ha a lejárat közelében van, akkor megújítod.
Én kérek elnézést!
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
Kérnék egy kis segítséget, egyszerűen teljesen bele gabalyodtam már a az Observer-be, persze próbálok utána olvasni, de valahogy nem teljesen értem a működésüket stb, Observer az nem vár lényegében, csak ha megkapja az adatot, akkor megcsinálja amit kell, de nem tudom ezt valahogy rá "húzni" az alatta lévő 2 sorra is, hogy addig ne hajtódjon végre, amíg az observer nem kapja meg az adatot?
lényeg, hogy ha HTTP401-et kapok vissza, akkor kér a kliens egy új tokent, és azzal újra elküldi a kérést, viszont ki loggoltam és amit nem igazán értek, hogy kiírja hogy "1", aztán kiírja hogy "null" mert nincs a localstorage-be a token, aztán kiírja a tokent ami a subscribe-n belül van
Azt akarom megoldani, hogy az utolsó log lényegében addig ne legyen végre hajtva, míg nem kerül be a localstorageba a token
if(localStorage.getItem("token"))
{
localStorage.clear();
console.log("1");
this.auth.refreshToken().subscribe(
res=>{
localStorage.setItem('token',res['token'])
console.log(localStorage.getItem('token'));
request = this.addRefreshToken(request);
},
err=>console.log(err)
)
console.log(localStorage.getItem('token'));
return next.handle(request);
}
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/m02.gif)
gary89
csendes tag
Szia!
Legegyszerűbb ha az egészet becsomagolod egy promiseba, az utolsó két sort berakod a res-hez tartozó blokkba és resolve-al térsz vissza. Error esetén természetesen reject.
Nagyobb kontextus nélkül ennyit tudok mondani, emiatt a függvényed (ha van) visszatérési típusát módosítanod kell, de kb ez a legegyszerűbb.
Ha Observereket használsz és az abból származó eredményre van szükséged és return-t akarsz használni, akkor valami tervezési gond lehet.
![](http://cdn.rios.hu/dl/faces/del.png)
#57018880
törölt tag
owlCarousel-el, van esetleg valakinek behatóbb ismerete?
A probléma a következő: van egy autoWidth slider, ahol minden owl-item, azaz a single slide felső wrappere kap egy negatív margót, hogy kicsit egymásra érjenek. Ez működik is, de a negatív margókat valamiért nem számolja az owlCarousel, így persze a jobb oldalon jó nagy üres tér marad amikor a vége felé járunk mielőtt vissza lép az első slidera, ezt egy bal oldali padding a külső wrapperen tudja félig meddig "kezelni", de sokkal jobb lenne bele nyúlni a jQuery plugin azon részébe ahol a számolást végzi és lekezelni az extra margókat, hogy az item szélességébe beleszámolódjon.
alap eset
----------------
[ x ] [ x ] [ x ]
----------------
mostani
--------------------
[ x ] x ] x ]
--------------------
-----------> ? <-
Hálás köszönet ha valakinek van valami ötlete erre.
![](http://cdn.rios.hu/dl/faces/del.png)
#57018880
törölt tag
Végig próbáltam minden eseményt a saját Plugin bekötési módszerével, de semelyikkel nem frissült le a _coordinates tömbje, ami a translateX poziciókat jelöli per slide.
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
Kérnék egy kis segítséget
Először is egy technikai kérdésem lenne, nem használtam soha még Ajax kérést, de ha jól tévedek, akkor a lényeg, hogy a háttérben elkéri az adatot, úgy, hogy a felhasználó semmit nem vesz észre, ilyen nincs az Angularban? Pl egy olyan funkciót, mint facebookon az értesítéseket hogy csinálják, hogy valós időben oldal újratöltés nélkül jelez?
A másik inkább ötletelés lenne
A freelancerhez hasonló weboldalt akarok csinálni, a gond ott kezdődik, hogy pl megrendelő feltölt egy projektet, amire a programozók vagy bárki reagálhat, tehát tesz rá egy órabér ajánlatot, ezt valahol ki kellene listázni a megrendelő részén, pl a hirdetései alatt kilistázza, hogy ki tett rá ajánlatot, persze ezt csak ő látná, ezután az X ajánlat közül kellene választania egyet, akinek odaadja a projektet, na már most ez a másik oldalt is lenne, tehát a programozó felrak egy hirdetést, hogy ő vállal akármilyen fejlesztést, és erre egy megrendelő ráugorhat, hogy neki kellene csinálni valamit, viszont ebben az esetben is lehet több " ajánlat" a hirdetése alatt, de nem feltétlen választ csak egyet, mert megcsinálhatja az összeset is
Egyrészt a későbbi értékeléseket kellene kötni valamihez pl hirdetéshez ,hogy ne lehessen össze vissza értékelni
Szóval erre keresek valami praktikus megoldást, gondolkoztam hasonló megoldáson is, mint a PH-s rendszer, de ott pár üzenetváltás után létrejön az üzlet, míg az én esetemben inkább személyes megbeszélések után kezdődhetne a projekt és fejeződhetne be
Remélem érthetően hadartam el mit is szeretnék, és megköszönöm ha tudtok 1-2 támpontot adni
[ Szerkesztve ]
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/cattus.gif)
cattus
őstag
Az elsőhöz websocket-re lesz szükséged. Nem tudom, hogy Angular-ba hogyan hegeszthető bele, de biztos meg lehet oldani. Viszont ezt szerveroldalon is implementálnod kell majd.
Do the thing!
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
Köszi , lehet ezt még átgondolom, mert szerintem felesleges, igazából csak az lett volna a cél, hogy jelezzem a felhasználónak hogy ha van olvasatlan üzenete pl, de erre igazáéból elég lenne az ngIf is, ami minden oldal frissítésnél megnézi, hogy van e olvasatlan üzenete, és ha van, akkor oda hegeszt 1 számot az üzenetek mellé pl
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
bocs ,de akkor kérdezek egy utolsót, mert azt se tudom hogy keressek rá
mi a módja annak, hogy formázó tageket tudjak beszúrni egy textareaba vagy akármibe mint pl itt?
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/cattus.gif)
cattus
őstag
Ha csak programkód formázás kell, akkor highlight.js, ha rich text editor, akkor pl. a froala egy jó cucc.
Do the thing!
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
tök jó, köszönöm
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/jim-y.gif)
Jim-Y
veterán
"Először is egy technikai kérdésem lenne, nem használtam soha még Ajax kérést, de ha jól tévedek, akkor a lényeg, hogy a háttérben elkéri az adatot, úgy, hogy a felhasználó semmit nem vesz észre, ilyen nincs az Angularban?"
Szerintem 100% hogy hasznaltal mar max nem tudsz rola hogy azt hasznaltad. Angular-ban ennek az egyik implementacioja a https://angular.io/guide/http angularjs-ben a $http service. Ujabb bongeszok tamogatjak a `fetch` API-t.
A websocket az mas. Websockettel tudod tobbek kozott elerni, hogy a backend is aszinkron tudjon kommunikalni a frontenddel. Igazabol mas a ketto. Az AJAX szinte minden applikacionak a resze es elengedhetetelen manapsag, websocketre pedig csak ritkan van szukseg.
[ Szerkesztve ]
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
Áhh köszi, és annak mi lenne a módja, hogy csak akkor töltsön be a template, ha megjött az adat? Sima ngIf-el oldjam meg, vagy más a módi erre?
Amit még hirtelen nem találok, hogy miként kellene megoldanom ha a hirdetéseket nem táblázatban, hanem listában vagy akármiben tárolnám, és szeretném használni a paginator-t?
Inkább úgy kérdezem, hogy nekem kellene lekezelni, hogy ha lapoz a felhasználó, akkor az ngFor a következő 10-et rakja ki?
Mert táblázatokra tök jó példákat találtam, ahol meg van oldva a lapozás egyszerűen, de listára nem találok hasonlót
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/m08.gif)
Doink
aktív tag
- ngif-el és addig kiteszel egy spinnert amíg tölt
- resolver-rel és akkor addig el se éred a route-ot [link]
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
köszi, akkor ha jól értem amikor a felhasználó navigálna valamire, akkor mielött betöltene az oldaly a resolver fut le, megkapja az útvonal címét, lefuttatja az utvonalon lévő observert vagy valamit, és ha megjött az adat akkor tölti csak be az oldalt ?
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
+ ha jól látom, akkor ezt minden egyes oldalra külön meg kell írni?
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/jim-y.gif)
Jim-Y
veterán
Attol fugg. A modi az kb ez:
template:
<md-list>
<md-list-item ng-repeat="item in $ctrl.items"></md-list-item>
</md-list>
controller:
class ItemController {
constructor() { this._init(); }
async _init() {
this.items = await this.whateverService.getItems();
}
}
A two-way binding miatt ha this.items modosul akkor a template is frissiti az allapotat. Nem minden esetben megy igy, van olyan, hogy ng-if-et kell hasznalni mint ahogy emlitettek is, akkor `ng-if` + spinner
[ Szerkesztve ]
![](http://cdn.rios.hu/dl/faces/own/cattus.gif)
cattus
őstag
Azért azt tedd hozzá, hogy a példakód, amit betettél, az AngularJS, amivel a kolléga nem megy sokra.
Do the thing!
![](http://cdn.rios.hu/dl/faces/own/jim-y.gif)
Jim-Y
veterán
Mar hogy ne menne sokra, Angular 7-ben is vannak komponensek es controllerek max a szintaxis mas. Most megnezve az angular-material oldalat, szinte 1-az-1-ben ugyanigy kell irni: https://material.angular.io/components/list/examples
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
Lehet elbeszélünk egymás mellett, ngFort használtam én is, itt még nem probléma , mert akkor dobálja ki az adatokat amikor megérkezik, csak akkor van baj pl, ha valamilyen szűrőt használnék, és ebben az esetben nem közvetlen a lekért adatokat jelenítem meg, hanem egy másik változóba belerakom az eredeti adatot, és azt aggregálom, ebben az esetben, ha a subscribe-n kívülre rakom az új változó értékadását, akkor hibát fog dobni, mivel bele akarja rakni az adatot, de az még nincs itt
A fentebb linkelt resolve jónak tűnik, mert pont azt csinálja, csak ahogy látom, azt minden componensre meg kell csinálni egyénileg
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/jim-y.gif)
Jim-Y
veterán
Ertem, egyszerubb lenne szerintem segitenunk neked, ha csinalnal egy olyan peldat amit mi i ki tudunk probalni. Mint ahogy a resolverest is feltettek.
![](http://cdn.rios.hu/dl/faces/own/zedz.gif)
Zedz
addikt
NG7-ben controllerek?
![](http://cdn.rios.hu/dl/faces/own/bandi0000.gif)
bandi0000
nagyúr
legegyszerűbb így elképzelni: gyári ha kitörlöd a desserts értékadását, akkor kb azt éred el, mintha nem jött volna meg az adat szerverről, és meghívja az üres tömbre a slice metódust, ami hibát dob rögtön
Nyilván én ezt megoldottam így, hogy a subscrible alá behúztam a slice-os sort, és akkor csak azután futna le, miután megjön az adat, de ez azért nem hiszem, hogy a legjobb megoldás
Xbox One: bandymnc
![](http://cdn.rios.hu/dl/faces/own/jim-y.gif)
Jim-Y
veterán
![](http://cdn.rios.hu/dl/faces/m23.gif)
joysefke
veterán
Sziasztok! Kéne egy kis help, mert semennyire sem értek a javascripthez.
A feladat egyszerű. Van egy user facing oldal, ahol van egy darab HTML-form. Szeretném a html form input mezőinek változását detektálni és csak abban az esetben láthatóvá/kattinthatóvá tenni a Submit gomot, ha változás történt.
Bootstrap és jQuery is van, ezért jQuery-ben szeretném a megoldást. Egyébként az oldalt ASP .NET Core platformra fejlesztem VS-sel.
Utánaolvastam és a megoldásnak úgy kéne működnie, hogy oldalbetöltés után szerializálom a formot és elmentem. Ezután a form minden input mezőjéhez hozzárendelésre kerül egy "change input" event handler ami a beviteli mező változásakor újra szerializálja a formot és az elmentett értékkel való egyezőség esetén eltünteti/deaktivála egyébként meg engedélyezi a Submit gombot.
Ezt sikerült összekendácsolnom, de nem működik:
<form id="rsvpForm">
<button id="rsvpSubmit" class="btn btn-primary btn-submit" type="submit">
Send
</button>
</form>
<script>
var $origForm;
var $form
$(document).ready(function () {
$form = $("#rsvpForm");
$origForm = $form.serialize();
});
$(document).ready("#rsvpForm:input").on("change input", function () {
$("#rsvpSubmit").toggle($form.serialize() !== $origForm);
});
</script>
[ Szerkesztve ]
![](http://cdn.rios.hu/dl/faces/own/cattus.gif)
cattus
őstag
Nem kell semmit szerializálni, nem is tudom ezt honnan vetted.
A HTML-be alapból letiltod a gombot egy disabled attribútummal.<button id="rsvpSubmit" class="btn btn-primary btn-submit" disabled type="submit">Send</button>
A JS:
$(document).ready(function() {
$('#rsvpForm :input').change(function() {
$("#rsvpSubmit").removeAttr('disabled');
});
});
Ja és a pastebin-es kódban a jquery-t meg hasonlókat korábban húzd be, mint a saját kódod.
[ Szerkesztve ]
Do the thing!
Mai Hardverapró hirdetések
prémium kategóriában
- MSI GeForce RTX 4080 SUPER 16G GAMING X SLIM, új, dobozos
- ASUS Zephyrus G14 GA401QM-HZ161T Fehér Gamer laptop (14" FHD/Ryzen9/16GB/1TB SSD/RTX3060 6GB/Win11)
- Bivalyerős AMD! Gamer számítógép PC! Ryzen 7 5800X /Rog Strix LC 6900XT /32GB DDR4/ 500SSD 1T HDD
- Akció! RGB Gamer PC Számítógép! I3 13100F / 32GB DDR4 / RTX 3060 12GB / 1TB NVME SSD
- Mercedes C osztály W205 Multimedia - NTG5.0 6/128GB Car PLAY