-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Lokids
addikt
-
Lokids
addikt
Sziasztok!
Van az oldalon 1 checkbox:
<input type="checkbox" id="ModositasAlatt_e06f20d0-a9c0-450c-a492-150374743dd1_$BooleanField" title="Módosítás alatt">
Js-ben egy egyszerű change eventet szeretnék rá. Viszont nem sikerül a queryselect.
Chrome consolba beírva is undefined eredménnyel tér vissza.Próbáltam az ID-val, a title alapján, queryselectAll-al is, hogy minden checkboxot, de az is undefined. És ezt az oldal betöltése után, szóval az sem lehet a gond, hogy akkor akarok hozzányúlni, mikor még nem jött létre.
Egy sima checked státuszt nem bírok lekérni...Valakinek valami ötlet?
-
Lokids
addikt
Ti hogyan oldanátok meg, hogy van egy 2 lapos form, amint van egy Alapadatok és egy Készültség gomb, amikre kattintva váltana közöttük.
Létrehozni egybe az egészet és a gombokkal csak elrejteném a megfelelő elemeket (js-ben hidden=true a div-re ami nem rendelkezik az adott classal), vagy van ennek valami jobb, logikusabb módja? -
Lokids
addikt
Viszont újabb probléma, hogy a fetch később tölti fel, mint hogy a kód használná.
Mi a normál módszer arra, hogy a kód további része csak azután piszkálja, hogy feltöltődött?
Be tudnék állítani egy intervalt, hogy folyamat ellenőrizze, hogy a length > 0.
Mert úgyis egy input mező onchange effektje használná az adatot összehasonlítás és infó kiírás miatt. Van ennél egyszerűbb/jobb/elegánsabb megoldás?
Át kell néznem, mi is az a callback és hogyan tudnám itt használni...Amit végeredményként akarok.
input mezőn kiválasztja a user az opciók közül az egyiket, ennek hatására az értékét összehasonlítja a tömbben lévő objektek kulcsaival. Egyezés esetén a kulcshoz tartozó érték egy <p>-be kerül kiírásra.
A fetch nyilván csak 1x fut le. És gondolom nem kell megvárnia, míg a teljes Dom betöltődik, mert nem függ az oldaltól, máshonnan jön az infó.
Esetleg felesleges a várakoztatás, mert mire az ember rákattint, addigra rég megvan?
Mondjuk anélkül nem fog menni consolra kiiratni ellenőrzéshez. -
Lokids
addikt
Sziasztok!
Szeretnék Sharepoint listából lehívni adatokat. Viszont gondom van azzal, hogy egy objektumba csak a szükséges dolgokat mentsem le:fetch(webUrl + "/_api/web/lists/GetByTitle('" + listName + "')/items?$select=*,FieldValuesAsText&$expand=FieldValuesAsText", {
method: "GET", headers: {
"Accept": "application/json; odata=nometadata"
} })
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok ' + response.statusText); } return response.json();
})
.then(data => {
var results = data.value;
var FieldValues = results[0]["FieldValuesAsText"];
var fields = Object.keys(FieldValues);
console.log(fields)
var res = Object.fromEntries(
Object.entries(results).filter(([key, value]) => key === "Title" || key === "Program") );
console.log(res);
})
A fields-et megnézve biztosan van Title és Program kulcs, mégis üres a res.
Hogyan kell objektumot szűrni? Csak az adott kulcsokat és értéküket szeretném tárolni. -
Lokids
addikt
válasz
zharkanyi #10242 üzenetére
Köszi.
Bár nálam astopPropagation()
nem működött.Az e.target !== e.currentTarget se.
Viszont target/currentTarget logja megmutatta, hogy bár a .container div kapja a clicket. A target minden esetben a .label div lesz.így a e.target.classList.value !== 'label' lett a megoldás.
Csak ez nem fog működni, hogyha több classt is tartalmaz egy div.
-
Lokids
addikt
Sziasztok!
Van egy .container Div-em, ami egy accordion, click eventre nyílik, csukódik.
A problémám, hogy a div-en belül bárhová kattintok összecsukja. Mármint a Div-en belüli child elementekre is. Hogyan tudom ezt megakadályozni?
Mivel input field van benne, így fontos lenne, hogy ha belekattintok ne csukja be.const accordion = document.getElementsByClassName('container');
for (i=0; i<accordion.length; i++) {accordion[i].addEventListener('click', function (event) {
if (event.target.closest('.container') === this) {
this.classList.toggle('active');
}
})
}
-
Lokids
addikt
Köszi. Nyilván a teljes AD-t nem töltöm le előre, így a 2. esetre lesz szükség.
-
Lokids
addikt
Sziasztok!
Tud valaki adni valami linket, kódrészletet, hogy hogyan kell js-ben olyan input fieldet csinálni, ami AD-ból autofill hozza az adatokat?
azaz ha elkezdem beírni, hogy Kovács, akkor dropdown kiadja mondjuk az első 3 kovács nevűt és ha az egyik jó nekem akkor kattinással be is emeli? -
Lokids
addikt
vsCode.
Kicsit átírtam, most így néz ki, de a probléma, hogy figyelmen kívül hagyja az if-et, az megmaradt:
const [clocks, setClocks] = useState({
breakCount: 5,
sessionCount: 25,
})
const [szunet, setSzunet] = useState(true)
const [start, setStart] = useState(false)
const [secound, setSecound] = useState(25*60)
useEffect(()=> {
let interval = null;
if (start){
interval = setInterval(() => {
if (secound === 0){
if (szunet){
setSecound(clocks.breakCount * 60)
setSzunet(!szunet)
} else {
setSecound(clocks.sessionCount * 60);
setSzunet(!szunet)
}
} else if (secound > 0) {
setSecound((prev) => prev - 1)
}
},100)
}else{
clearInterval(interval)
}
return () => clearInterval(interval)
}, [start])
Az if (secound ===0) nem teljesül 1x sem. Pedig eléri a 0-át. Majd utána -1, -2 stb...
-
Lokids
addikt
Megtudja valaki mondani mi a gond ezzel a useEffectel?
Gombnyomás a start-ot true/false-ra állítja.
Szóval start gomb true-ra állít, onnantól futnia kéne, de!beállítja a másodpercet 59-re, de onnantól másodpercenként 1-et von le a minutes-ből. Pedig akkor a secounds már !==0 szóval nem kéne belépnie abba az if-be.
useEffect(()=> {
let interval = null;
if (start){
interval = setInterval(() => {
if (secounds === 0) {
if(minutes !== 0){
setSecounds(59);
setMinutes((perc) => perc-1)
} else {
let minut = ticking ? minutes : clocks.breakCount;
setMinutes(minut)
setSecounds(0)
setTicking(!ticking)
}
}else{
setSecounds((ms) => ms - 1)
}
},1000)
}else{
clearInterval(interval)
}
return () => clearInterval(interval)
}, [start])
-
Lokids
addikt
válasz
hiperFizikus #9773 üzenetére
Ja nem. nem szóltam....
-
Lokids
addikt
Meg tudná valaki mondani, hogy codepen.io-n hogyan kell React-t használni?
Babel van és additional resourcenek be van rakva a react-dom és a react is.
De a vs code-ból átemelt import React, {useState} from "React"-ra hibát dob.
Honnan kellene importálni? Ha a resource full linket teszem be, akkor meg "ambiguous indirect export: default"-ot kapok. -
Lokids
addikt
Hogyan kell arrayon belül arrayra bontani az adatokat?
myArr = [1,2,a,b,a2,b3] => [[1,2],[a,b],[a2,b3]] legyen az eredmény?
Már csináltam ilyent, de most ha lelőnének se jut eszembe hogyan. -
Lokids
addikt
Hogy oldanátok meg ezt?
abc (123) jó legyen, de abc 123) ne
(?(?=\()\d{3}\)|\d{3})
Ez nem azt csinálja, hogy ha van "(", akkor (123) legyen a jó, ha nincs akkor pedig csak az 123?
-
Lokids
addikt
Oké, megvan. Azért, mert az isNaN nem azt mondja meg, hogy szám-e vagy nem.
Bár így eléggé zavaró az elnevezése.Viszont akkor újabb problémám van:
if (arguments.length === 1){
return function(b){
console.log(typeof b)
if(typeof a === "number" && typeof b === "number"){
return a+b
}
return undefined
}
}
Ha egyáltalán nincs 2. argumentum, akkor a typeof b-re azt kapom vissza, hogy [function].
Ennek ellenére nem undefined lesz a visszatérő érték, hanem [function].
Miért? -
Lokids
addikt
Sziasztok!
Megtudja valaki mondani, hogy mi a hiba a functionnel? Nem lép bele az isnan(b) || isnan(b) vizsgálatba.
addTogether(2)([3])function addTogether(...args) {
const [a, b] = args
if (!b) {return function(b){
console.log(b)
if(isNaN(a) || isNaN(b)){
return undefined
}
return a+b
}
}
if(isNaN(a) || isNaN(b)){return undefined
}
return a+b
}
Nem akkor kelle bele lépni, ha a VAGY b nem szám? Mert a b ugye egy array, így az isNaN(b)-nek true-na kell lennie és vissza kéne adnia az undefined eredményt.
-
Lokids
addikt
Köszönöm a magyarázatokat. nagyjából(!) sikerült megértenem, hogyan működik.
Bár még kétlem, hogy magamtól problém nélkül tudnám is alkalmazni. -
Lokids
addikt
Sziasztok,
Valaki segítsen nekem megérteni JS-ben ez a .reduce() miért /hogyan működik:
const users = [
{ name: 'John', age: 34 },
{ name: 'Amy', age: 20 },
{ name: 'camperCat', age: 10 }
];
const usersObj = users.reduce((obj, user) => {
obj[user.name] = user.age;
return obj;
}, {});
console.log(usersObj);
Pontosabban ez a része az amit nem bírok felfogni:
obj[user.name] = user.age
Ebből hogy jön ki a { John: 34, Amy: 20, camperCat: 10 } eredmény? o.O
Elsőre én azt hinném, hogy mikor a reduce végig lépdel az objecteken a name-nek adná értékül az age értékét.Szóval miért nem {name: 34} az első lépés eredménye.
Tudom, hogy én lenni buta, de az agyam nem képes ezt most felfogni. -
Lokids
addikt
Azt hiszem sikerült megoldani egy if segítségével. HA az utolsó elem az i, akkor egyszerűen csak 0-t adok át, míg más esetben i+1.
Így az első esetben nem von ki semmit, míg másodikban a 6 napot vonja le.
Csak tudnám az ilyen egyszerű megoldáson miért kell órákat gondolkodnom. -
Lokids
addikt
Nem segít, mert nem a tömb megfordítása a probléma, mert az logikailag hibás.
A probléma az, hogy van 60 tömböm objectekkel feltöltve, aminek van 10 propertyje és abból az egyik a nap. És visszafelé kéne valahogy dátumot számolnom. odafele nem gond, mert akkor az első a 0 és jó lesz a számolás. De a tömb megfordítása ezt nem oldja meg. Mivel fordítva az első object név értékét kellene a kiválasztott dátum mellé írni, míg a második object név értékét az első object nap értékével csökkentett dátum mellé.Sajna az tömb[i+1] nem megoldás, mert a legelső elemnél a semmire mutatna.
-
-
Lokids
addikt
Sziasztok!
Ez lehet inkább elmélet, mint js...
var Date = New date('2022-06-15')
myArray = [
{Szöveg: Valami1, nap: 0},
{Szöveg: Valami2, nap: 2},
{Szöveg: Valami3, nap: 4},
{Szöveg: Valami4, nap: 6},
];
Na most ha elejétől végéig végigmegyek és egy dátumhoz hozzáadom a napokat az tökély.
De ha a végétől az elejéig akarok menni, akkor azzal kezd ugye, hogy kivonja a dátumból a 6-t.
Miképp lehet megoldani, hogy valami4 a kiválasztott dátum legyen,
a valami3 a dátum -6, a valami2 az Új dátum - 4 nap és Valami1 mégújabb dátum -2?
Az nem elég, ha csak 1-el elcsúsztatom az elemeket, mert visszafelé nem létezik az utolsó elem+1. -
Lokids
addikt
pl: 2022.06.01 ->> 2022.06.02 -> 2022.06.04
Azaz az új dátumhoz adja hozzá a következő számot, ne az eredetihez. Ezt elfelejtettem mondani.De én pontosan most ezt próbálom:
var huHolidays = [
'2022-01-01', '2022-03-14', '2022-03-15', '2022-04-15', '2022-04-18', '2022-05-01', '2022-06-06', '2022-08-20', '2022-10-23', '2022-10-31', '2022-11-01', '2022-12-25', '2022-12-26',
'2023-01-01', '2023-03-15', '2023-04-07', '2023-04-10', '2023-05-01', '2023-05-29', '2023-08-20', '2023-10-23', '2023-11-01', '2023-12-25', '2023-12-26',
'2024-01-01', '2024-03-15', '2024-03-29', '2024-04-01', '2024-05-01', '2024-05-20', '2024-08-20', '2024-10-23', '2024-11-01', '2024-12-25', '2024-12-26',
'2025-01-01', '2025-03-15', '2025-04-18', '2025-04-21', '2025-05-01', '2025-06-09', '2025-08-20', '2025-10-23', '2025-11-01', '2025-12-25', '2025-12-26'
];
function addWorkingDays(date, days) {
for (var i = days; i; i--) {
// Add a day
date.setDate(date.getDate() + 1);
// If a weekend or holiday, keep adding until not
while (!(date.getDay() % 6) || huHolidays.indexOf(getISODate(date)) != -1) {
date.setDate(date.getDate() + 1);
}
}
return date.toLocaleDateString("hu");
}
const Arry = [
{Nev: 'valami1', napok: 3},
{Nev: 'Valami2', napok: 4},
{Nev: 'Valami3', napok: 2}
]
datum = new Date('2022-06-03');
var Datumok = []
for (i = 0; i < Arry.length; i++) {
Datumok.push(addWorkingDays(datum, Arry[i.napok]));
}
console.log(Datumok) -
-
Lokids
addikt
Sziasztok!
array.map esetén a benne lévő functionnak hogy adom meg az adott array i-ik elemét?
pl:
Var date = '2022-06-01'
const array = [1, 2, 3]
NewArray = array.map(addDays(date, i-ik elem))
function addDays(date, days) {
var result = new Date(date);
result.setDate(result.getDate()+ days);
return result.toLocaleDateString("hu");
}
-
Lokids
addikt
Sziasztok!
Ha van egy data változóm, ami ilyen módon töltődik fel:
console.log(JSON.stringify(data))
[{ arg: "Uniós", val: 50, sum:10, parentID: "" },{ arg: "Hazai", val: 79, sum:20, parentID: "" },{ arg: "Egyéb hazai", val: 17, sum:30, parentID: "" },{ arg: "Egyéb hazai - Tervezés alatt", val: 9, sum:10, parentID: "Egyéb hazai" },{ arg: "Hazai - Tervezés alatt", val: 15, sum:20, parentID: "Hazai" },{ arg: "Uniós - Tervezés alatt", val: 2, sum:30, parentID: "Uniós" },{ arg: "Egyéb hazai - Megvalósítás alatt", val: 7, sum:10, parentID: "Egyéb hazai" },{ arg: "Hazai - Megvalósítás alatt", val: 28, sum:20, parentID: "Hazai" },{ arg: "Uniós - Megvalósítás alatt", val: 35, sum:30, parentID: "Uniós" },{ arg: "Egyéb hazai - Zárás alatt", val: 0, sum:0, parentID: "Egyéb hazai" },{ arg: "Hazai - Zárás alatt", val: 4, sum:20, parentID: "Hazai" },{ arg: "Uniós - Zárás alatt", val: 7, sum:30, parentID: "Uniós" },{ arg: "Egyéb hazai - Lezárt", val: 1, sum:10, parentID: "Egyéb hazai" },{ arg: "Hazai - Lezárt", val: 32, sum:20, parentID: "Hazai" },{ arg: "Uniós - Lezárt", val: 6, sum:30, parentID: "Uniós" }];
console.log(data)
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ha kézzel felveszem:
var data = [
{ arg: "Uniós", val: 50, sum:10, parentID: "" },
{ arg: "Hazai", val: 79, sum:20, parentID: "" },
{ arg: "Egyéb hazai", val: 17, sum:30, parentID: "" },
{ arg: "Egyéb hazai - Tervezés alatt", val: 9, sum:10, parentID: "Egyéb hazai" },
{ arg: "Hazai - Tervezés alatt", val: 15, sum:20, parentID: "Hazai" },
{ arg: "Uniós - Tervezés alatt", val: 2, sum:30, parentID: "Uniós" },
{ arg: "Egyéb hazai - Megvalósítás alatt", val: 7, sum:10, parentID: "Egyéb hazai" },
{ arg: "Hazai - Megvalósítás alatt", val: 28, sum:20, parentID: "Hazai" },
{ arg: "Uniós - Megvalósítás alatt", val: 35, sum:30, parentID: "Uniós" },
{ arg: "Egyéb hazai - Zárás alatt", val: 0, sum:0, parentID: "Egyéb hazai" },
{ arg: "Hazai - Zárás alatt", val: 4, sum:20, parentID: "Hazai" },
{ arg: "Uniós - Zárás alatt", val: 7, sum:30, parentID: "Uniós" },
{ arg: "Egyéb hazai - Lezárt", val: 1, sum:10, parentID: "Egyéb hazai" },
{ arg: "Hazai - Lezárt", val: 32, sum:20, parentID: "Hazai" },
{ arg: "Uniós - Lezárt", val: 6, sum:30, parentID: "Uniós" }
];Így a data egy tömb, mely objektumokat tartalmaz ugye?
És van is benne adat.
De mikor csak a változót kiíratom, miért lesz [object Object]?
Mit kellene tennem, hogy ugyanazt lássam, mint a string verzióba? -
Lokids
addikt
Sziasztok!
Fejlesztettek nektünk pár táblázatot honlapra javascript alapon.
Felsővezetés kitalálta, hogy milyen jó lenne, ha színt is vinnénk bele. Namost nem mi csináltuk, de oldjuk meg alapon nézegetem a kódot, de nem tudok rájönni, hogy tudnám megoldani azt, hogy egyik oszlopban jelzőlámpa lenne. Szöveg ott van, hogy "piros" "sárga" "zöld" És ezek alapján kellene színezni a tartományt.
Ez a kód tölti be az adatokat:
masterDetail: {
enabled: true,
template: function(container, options) {
var currentEmployeeData = options.data;
//console.log("opdata:");
//console.log(options.data);
EOSP.GetVirDatas("{view:\""+EOSP.config.virconfig.views.riport2.nondash_FKSZforras_riport_SPchild_VW.vname+"\",filter: \"SzerzodesItemID='"+options.data.ItemID+"'\"}",drawInnerKoztesTables);
function drawInnerKoztesTables(koztesdata) {
var currentSource = koztesdata.data;
console.log(currentSource);
var newArray = [];
var innerValues = {};
var columns = [];
var titleVar = "nondash_FKSZforras_riport_SPchild_VW";
var clickedFilter = "default2";
$.each(currentSource, function( innerIndex, innerValue ) {
$.each(EOSP.config.virconfig.views.riport2[titleVar].tablevalues[clickedFilter], function( index, value ) {
if(index != "url") {
if(!innerValue[value.value]) {
innerValue[value.value] = "";
}
if(isNaN(innerValue[value.value])) {
var testForNumb = isNumeric(innerValue[value.value]);
if(testForNumb) {
}
} else {
if(value.type != "number") {
}
}
if(String(innerValue[value.value]).indexOf("00:00") > -1) {
innerValue[value.value] = innerValue[value.value].split("T");
innerValue[value.value] = innerValue[value.value][0];
}
innerValues[value.title] = innerValue[value.value];
if(innerIndex== 0) {
if(value.type == "number") {
if(String(innerValue[value.value]).length > -1) {
var rowDatasReszletek = {dataField: value.title,dataType:value.type,format: {useGrouping: true, minimumSignificantDigits: 1}};
} else {
var rowDatasReszletek = {dataField: value.title,dataType:value.type};
}
} else {
var rowDatasReszletek = {dataField: value.title,dataType:value.type};
}
if(value.title) {
columns.push(rowDatasReszletek );
}
}
}
});
innerValues[EOSP.config.virconfig.views.riport2[titleVar].vid] = innerValue[EOSP.config.virconfig.views.riport2[titleVar].vid];
newArray.push(innerValues);
innerValues = {};
}); $("<div>")
.addClass("master-detail-caption")
.appendTo(container);
$("<div>")
.dxDataGrid({
columns: columns,
dataSource: newArray,
keyExpr: EOSP.config.virconfig.views.riport2[titleVar].vid,
export: {
enabled: true,
fileName: titleVar
},Gondolom az innervalue[valu.title] értékét kellene megvizsgálnom, hogy = "zöld", de már erre is hibát dob. Ráadásul ötletem sincs, hogy hogy tudnék enneky valami style-t állítani.
Valakinek valami ötlet? -
Lokids
addikt
Lehet, hogy a környezetet is le kellett volna írnom.
Szóval máig én még nem foglalkoztam JS-el. A feladat amihez kell, az Sharepointon egy lista színezése a határidő alapján. 2010-es verzióban még elég volt a feltételes formázás, de 2013-16-os verzióban ilyen már nincs. Scriptel kell megoldani.
Böngészőben gondolom az f12-vel elővarázsolt menüben kell valahol ezt megtalálnom. -
Lokids
addikt
Sziasztok!
Az alábbi kódban kérnék segítséget. Lefut, de minden zöld, dátumtól függetlenül:
function colorCodeRows() {
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
OnPostRender: function (ctx) {
// get today's date
var today = new Date();
// zero out the time portion so we will only compare days
today.setHours(0,0,0,0);
var rows = ctx.ListData.Row;
for (var i = 0; i < rows.length; i++) {
// get the date set in your date YourDateField
var itemDate = new Date(rows[i]["Határidő"]);
// zero out the time portion so we only compare days
itemDate.setHours(0,0,0,0);
var rowId = GenerateIIDForListItem(ctx, rows[i]);
var row = document.getElementById(rowId);
if (itemDate > today) {
row.style.backgroundColor = '#00FF00';
} else if (itemDate = today) {
row.style.backgroundColor = '#FFFF00';
} else if (itemDate < today) {
row.style.backgroundColor = '#FF0000';
}
}
}
});
}
RegisterModuleInit(SPClientTemplates.Utility.ReplaceUrlTokens('~site/SiteAssets/JSLink/coloring.js'), colorCodeRows);
colorCodeRows();Nem tudom mit nézek be, mert elvileg teljesül a többi feltétel, de a notepad nem tud lépésenkénti futtatást.
Új hozzászólás Aktív témák
Hirdetés
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- E-roller topik
- 5.1, 7.1 és gamer fejhallgatók
- Kerékpárosok, bringások ide!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- WoW avagy World of Warcraft -=MMORPG=-
- Milyen billentyűzetet vegyek?
- Autós topik
- Luck Dragon: Asszociációs játék. :)
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- Azonnali készpénzes nVidia RTX 4000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- LENOVO ThinkBook 13s - 13.3" FullHD IPS - i5-10210U - 8GB - 256GB SSD - Win11 - MAGYAR
- REFURBISHED és ÚJ - HP Thunderbolt Dock G2 230W docking station (3TR87AA)
- Bitcoin miner Bitmain Antminer S9 S9I 13.5 - 14 Th 1250W eladó
- Samsung Galaxy S23 Ultra , 8/256 GB , Kártyafüggetlen
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest