Costi
(Constantin Campean)
iunie 21, 2017, 8:42pm
1
Vreau sa il ajut pe un prieten cu un site ( https://educatiavederii.ro/?judet=cluj ) . Cand un user face click pe Trimite-mi raportul se deschide o modala si vrea sa se faca autoselect pentru judet, in functie de judetul din URL . I-am trimis urmatorul cod dar nu functioneaza:
$( ".tve_p_lb_content.tve-tl-anim.tl-anim-instant.bSe.cnt.tve-leads-triggered").load( "https://educatiavederii.ro/?judet=cluj", function() {
alert( "Load was performed." );
const urlParam = window.location.search.split('judet=')[1].toLowerCase();
const selectInput = document.querySelectorAll('.tve_lg_input_container select')[0];
[].forEach.call(document.querySelectorAll('.tve_lg_input_container select option'), function(elm){
if (urlParam === elm.value) {
selectInput.value = elm.value;
}
return;
});
});
Este ceva in flow ul de executie al javascripului care imi scapa. Daca ar fi fost fara modala, codul functioneaza perfect.
Ce fac gresit?
navaru
(Eugen)
iunie 22, 2017, 9:57am
2
Ia pas cu pas exemplul si daca nu intelegi ceva intreaba.
Am folosit capitalizeWords
pt. ca valorile din selectorul de judet cu valorile venite din URL nu sunt identice, ex:
?judet=cluj
<option value="Cluj">Cluj</option>
<-- value should be cluj
var $ = jQuery
var regionSelector = "[name='field[5]']"
var urlQuery = {}
if (window.location.search.length) {
window.location.search.slice(1).split("&").forEach(function (value) {
var field = value.split("=")
urlQuery[field[0]] = decodeURIComponent(field[1])
})
}
function capitalizeWords (string) {
return string.replace(/(?:^|\s)\S/g, function (value) {
return value.toUpperCase()
})
}
function waitForElement (selector, callback) {
if ($(selector).is(":visible")) {
callback()
}
else {
setTimeout(waitForElement, 200, selector, callback)
}
}
function autoSelectRegion () {
if (urlQuery.judet) {
var regionSelect = document.querySelector(regionSelector)
if (regionSelect) {
regionSelect.value = capitalizeWords(urlQuery.judet)
}
}
}
$('.tve_red.tve_hugeBtn.tve_btn7 > a').on("click", function (event) {
event.preventDefault()
waitForElement(regionSelector, autoSelectRegion)
})
2 Likes
Costi
(Constantin Campean)
iunie 26, 2017, 8:22pm
3
Frumos scris codul de mai sus, deșii la fiecare funcție de mai sus a trebuit sa verific documentația de pe MDN. Mi-ar plăcea să ajung să scriu și eu cod în acest fel, chiar și folosind jQuery.
Expresia /(?:^|\s)\S/g
nu o înțeleg cum funcționează deși am trecut-o prin https://regex101.com/
1 Like