You can't put an input field inside a select box. But here's an attempt with what you're trying to do, I made a plugin (somehow);
I utilized data-attributes, I had them placed inside divs so that whenever I click that option (or div), I will assign that data-attribute to the hidden input field.
$(document).ready(function() {
// show options
$(".select-field").click(function() {
$(".select-options").show();
});
// handle option click
$(".select-option").click(function() {
$(this).addClass("clicked");
$("#shp").val($(this).data("value"));
$(".select-field").html($(this).data("area"));
$(".select-option").not(this).each(function() {
$(this).removeClass("clicked");
});
});
// get shp value
$(".getSelectValue").click(function() {
alert($("#shp").val());
});
// hide options
$(window).click(function(e) {
if ($(e.target).hasClass("select-option") || $(e.target).hasClass("select-input")) {
} else {
if (!$(e.target).hasClass("select-field")) {
$(".select-options").css("display", "none");
}
}
});
});
.select-container {}
.select-container .select-field {
display: inline-block;
padding: 3px 20px;
border-radius: 3px;
border: 1px solid rgb(180, 180, 180);
transition: 0.2s;
cursor: pointer;
}
.select-container .select-field:hover {
background-color: rgba(0, 0, 0, 0.1);
}
.select-container .select-options {
position: absolute;
z-index: 9999;
overflow: hidden;
background-color: white;
display: none;
border-radius: 3px;
border: 1px solid rgb(180, 180, 180);
transition: 0.1s;
width: 60%;
cursor: pointer;
}
.select-container .select-options div {
padding: 4px 6px;
border-bottom: 1px solid rgb(180, 180, 180);
transition: 0.2s;
}
.select-container .select-options div:hover {
background-color: rgba(0, 0, 0, 0.1);
}
.select-container .select-options div:last-of-type {
border-bottom: none !important;
}
.select-container .select-options .clicked {
background-color: rgba(60, 150, 210) !important;
color: white;
}
<html>
<body>
<div class="select-container">
<div class="select-field">
Choose
</div>
<div class="select-options">
<input id="shp" name="shp" hidden/>
<div class="select-option" data-area="UK and European Union" data-value="hc=11.00 s1=5.50 s2=5.50">UK and European Union: Delivery with Tracking and Insurance - 2/3 days - EUR <input class="select-input" type="text" /> - (then 5.50 for each additional object in the parcel)</div>
<div class="select-option" data-value="hc=13.00 s1=6.50 s2=6.50" data-area="United States and Canada">United States and Canada: Delivery with Tracking and Insurance - 3/4 days - EUR
<!--AMT-->- (then 6.50 for each additional object in the parcel)</div>
<div class="select-option" data-value="hc=18.00 s1=7.50 s2=7.50" data-area="Rest of the World">Rest of the World: Delivery with Tracking and Insurance - 4/10 days - EUR
<!--AMT-->- (then 7.50 for each additional object in the parcel)</div>
<div class="select-option" data-value="s1=0.00 s2=0.00" data-area="Free Delivery">Free Delivery (Priority Mail without Tracking, without Insurance and without guaranteed shipping times) EUR 0.00</div>
</div>
</div>
<br>
<button class="getSelectValue">Get Select Value</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</body>
</html>