Costumized PayPal selection menu
-
I’ve got an issue with a customized paypal button and the therefore modified select section (dropdownmenu). Unfortunately I’m not a coder. That’s why I have troubles figuring out the problem.
The problem is that the code is not displayed right. When I take a look at the code saved as a .html-file it looks perfect in the browser, but as soon as I paste the html-code in Lay Theme the text as well as the spacing from the dropdownmenu to the button disappears.
This is the code I copied into Lay Theme:
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
/the container must be positioned relative:/
.custom-select {
position: relative;
font-family: Helvetica;
}.custom-select select {
display: none; /hide original SELECT element:/
}.select-selected {
background-color: #fff;
}/point the arrow upwards when the select box is open (active):
.select-selected.select-arrow-active:after {
border-color: transparent transparent #fff transparent;
top: 7px;
}//style the items (options), including the selected item:/
.select-items div,.select-selected {
color: #000;
padding: 8px 16px;
border: 1px solid transparent;
border-color: transparent transparent rgba(0, 0, 0, 0.1) transparent;
cursor: pointer;
user-select: none;
}/style items (options):/
.select-items {
position: absolute;
background-color: #fff;
top: 100%;
left: 0;
right: 0;
z-index: 99;
}/hide the items when the select box is closed:/
.select-hide {
display: none;
}.select-items div:hover, .same-as-selected {
background-color: rgba(0, 0, 0, 0.1);
}
</style>
</head><body>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="1234567890">
<table>
<tr><td>
<input type="hidden" name="on0" value="order"></td></tr><tr><td>
<div class="custom-select" style="width:200px;">
<select name="os0">
<option value="size">select size</option>
<option value="small">small | 90 EUR</option>
<option value="medium">medium | 90 EUR</option>
<option value="large">large | 90 EUR</option>
</select> </td></tr>
</table>
<br>
<br>
<input type="hidden" name="currency_code" value="EUR">
<input type="image" src="https://www.paypalobjects.com/de_DE/DE/i/btn/btn_paynow_SM.gif" border="0" name="submit" alt="Jetzt einfach, schnell und sicher online bezahlen – mit PayPal.">
<img style="width: 1px; height: 1px;" alt="" border="0" src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif" width="1" height="1">
</form><script>
var x, i, j, selElmnt, a, b, c;
/look for any elements with the class "custom-select":/
x = document.getElementsByClassName("custom-select");
for (i = 0; i < x.length; i++) {
selElmnt = x[i].getElementsByTagName("select")[0];
/for each element, create a new DIV that will act as the selected item:/
a = document.createElement("DIV");
a.setAttribute("class", "select-selected");
a.innerHTML = selElmnt.options[selElmnt.selectedIndex].innerHTML;
x[i].appendChild(a);
/for each element, create a new DIV that will contain the option list:/
b = document.createElement("DIV");
b.setAttribute("class", "select-items select-hide");
for (j = 1; j < selElmnt.length; j++) {
/for each option in the original select element,
create a new DIV that will act as an option item:/
c = document.createElement("DIV");
c.innerHTML = selElmnt.options[j].innerHTML;
c.addEventListener("click", function(e) {
/when an item is clicked, update the original select box,
and the selected item:/
var y, i, k, s, h;
s = this.parentNode.parentNode.getElementsByTagName("select")[0];
h = this.parentNode.previousSibling;
for (i = 0; i < s.length; i++) {
if (s.options[i].innerHTML == this.innerHTML) {
s.selectedIndex = i;
h.innerHTML = this.innerHTML;
y = this.parentNode.getElementsByClassName("same-as-selected");
for (k = 0; k < y.length; k++) {
y[k].removeAttribute("class");
}
this.setAttribute("class", "same-as-selected");
break;
}
}
h.click();
});
b.appendChild(c);
}
x[i].appendChild(b);
a.addEventListener("click", function(e) {
/when the select box is clicked, close any other select boxes,
and open/close the current select box:/
e.stopPropagation();
closeAllSelect(this);
this.nextSibling.classList.toggle("select-hide");
this.classList.toggle("select-arrow-active");
});
}
function closeAllSelect(elmnt) {
/a function that will close all select boxes in the document,
except the current select box:/
var x, y, i, arrNo = [];
x = document.getElementsByClassName("select-items");
y = document.getElementsByClassName("select-selected");
for (i = 0; i < y.length; i++) {
if (elmnt == y[i]) {
arrNo.push(i)
} else {
y[i].classList.remove("select-arrow-active");
}
}
for (i = 0; i < x.length; i++) {
if (arrNo.indexOf(i)) {
x[i].classList.add("select-hide");
}
}
}
/if the user clicks anywhere outside the select box,
then close all select boxes:/
document.addEventListener("click", closeAllSelect);
</script></body>
</html> -
Dear @pat-rick
Because LayTheme is written as a single-page Javascript application, some things work differently.
To use other JS code, please follow the documentary: http://laytheme.com/documentation.html#custom-javascript
Some effects might not work or need adjustment.
Best!
Marius -
-
Dear @pat-rick
Perfect! Glad to hear!
Many wishes!
Marius
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login