Я хочу иметь пользовательский вариант выбора, но я ничего не могу найти в Интернете. Я хочу иметь опцию выбора, которую клиент может выбрать.
и кнопка отправки
Вы можете попробовать использовать переключатели, также есть возможность поиграть с <выбрать несколько> и попытаться стилизовать их по своему усмотрению.
последний - это вход, который принимает только числа



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вы можете использовать ввод типа флажка внутри формы Html
<!DOCTYPE html>
<html>
<body>
<h1>Show Checkboxes</h1>
<form action = "/action_page.php">
<input type = "checkbox" id = "vehicle1" name = "vehicle1" value = "Bike">
<label for = "vehicle1"> I have a bike</label><br>
<input type = "checkbox" id = "vehicle2" name = "vehicle2" value = "Car">
<label for = "vehicle2"> I have a car</label><br>
<input type = "checkbox" id = "vehicle3" name = "vehicle3" value = "Boat">
<label for = "vehicle3"> I have a boat</label><br><br>
<input type = "submit" value = "Submit">
</form>
</body>
</html>Я думаю, вы можете попробовать таким образом
<form action = "">
<label for = "gender"> Select Position</label>
<select name = "gender">
<option value = "none" selected>Position</option>
<option value = "first">First</option>
<option value = "second">Second</option>
<option value = "third">Third</option>
<option value = "fourth">Fourth</option>
<option value = "fifth">Fifth</option>
</select>
</form>Вы также можете попробовать так:
const select = document.querySelector(".select");
const form = document.querySelector(".form");
select.addEventListener("click",()=>{
if (form.classList.contains("hide")){
form.classList.remove("hide");
}else form.classList.add("hide");
}).hide{
display:none;
}
p{
background:rgba(0,0,0,0.1);
width:max-content;
padding:10px 30px 10px 10px;
cursor:pointer;
}<!DOCTYPE html>
<html>
<body>
<p class = "select" >Select Checkboxes</p>
<form action = "/action_page.php" class = "form hide">
<input type = "checkbox" id = "vehicle1" name = "vehicle1" value = "Bike">
<label for = "vehicle1"> I have a bike</label><br>
<input type = "checkbox" id = "vehicle2" name = "vehicle2" value = "Car">
<label for = "vehicle2"> I have a car</label><br>
<input type = "checkbox" id = "vehicle3" name = "vehicle3" value = "Boat">
<label for = "vehicle3"> I have a boat</label><br><br>
<input type = "submit" value = "Submit">
</form>
</body>
</html>Если это правильное решение. Примите решение, это поможет другим быстрее найти правильное решение.
Вы можете просто использовать переключатели, дать им группу, чтобы можно было выбрать только одну, и красиво их стилизовать.
Я думаю, вы не хотите отправлять свой ввод числа, чтобы вы могли назначить его другой форме, как это сделал я, предоставив нашу форму form = "this-form" и применив form = "different-form" к вводу числа, форма, которой вы его назначаете, не должна существовать.
Чтобы ваше последнее радио отправляло информацию, записанную при вводе числа, я использовал некоторый Javascript, поэтому каждый раз, когда ввод изменяется, изменение присваивается значению последнего переключателя.
let number = document.getElementById("number");
let radio = document.getElementById("radio-5");
number.addEventListener("input", () => {
radio.value = number.value;
})
let form = document.querySelector("form");
form.addEventListener("submit", (event) => {
let input = document.querySelector("input[name=group]:checked");
event.preventDefault();
console.info(input.value)
}).container {
border: 1px solid black;
width: 200px;
padding: 1em;
border-radius: 20px;
flex-direction: column;
}
.flex-container {
display: flex;
justify-content: space-between;
}
input[type=submit] {
display: block;
margin: 1em auto 0;
}
input[type=number] {
margin: auto;
max-width: 80px;
}<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel = "stylesheet" href = "style.css">
<script defer src = "script.js"></script>
</head>
<body>
<div class = "container">
<form form = "this-form">
<div class = "flex-container">
<label for = "group">Number 1</label>
<input type = "radio" required value = "Number 1" name = "group">
</div>
<hr>
<div class = "flex-container">
<label for = "group">Number 2</label>
<input type = "radio" value = "Number 2" name = "group">
</div>
<hr>
<div class = "flex-container">
<label for = "group">Number 3</label>
<input type = "radio" value = "Number 3" name = "group">
</div>
<hr>
<div class = "flex-container">
<label for = "group">Number 4</label>
<input type = "radio" value = "Number 4" name = "group">
</div>
<hr>
<div class = "flex-container">
<input id = "number" form = "different-form" type = "number" >
<label for = "num">Num Here</label>
<input type = "radio" id = "radio-5" name = "group" value = "">
</div>
<input type = "submit" id = "submit" value = "Submit">
</form>
</div>
</body>
</html>Я использовал здесь preventeDefault, поэтому скрипт каждый раз показывает, что отправляется, поэтому вы можете игнорировать все, что написано в файле JS после number.addEventListener.
Не могли бы вы предоставить более подробную информацию об аспектах ui/ux необходимого контроля?