Ввод HTML: требуется, чтобы URL-адрес заканчивался определенным типом файла
Как я могу создать форму ввода URL, чтобы вход был действительным URL-адресом и заканчивался определенным типом файла.
Например, это мой ввод:
<input name="bg" placeholder="https://website.com/image" type="url">
Как вы можете видеть, он использует тип URL, который ограничивает его допустимым доменом http://, но я хотел бы, чтобы поле ввода принимало только файлы .png,.jpg и .gif.
Может ли это быть достигнуто с помощью html или javascript, и если да, то как?
Спасибо!
Ответы
Ответ 1
Вам не нужен Javascript здесь, вы можете использовать атрибут pattern
для своего input
(например, я добавил CSS):
input:valid {
border: 1px solid green;
}
input:invalid {
border: 1px solid red;
}
<input name="bg" placeholder="https://website.com/image" type="url" pattern="https?:\/\/(www\.)?[[email protected]:%._\+~#=]{2,256}\.[a-z]{2,4}\b([[email protected]:%_\+.~#?&//=]*)(.jpg|.png|.gif)">
Ответ 2
Вы можете добиться этого с помощью регулярного выражения, вы также захотите проверить эту серверную сторону, если пользователь отключил JavaScript.
Javascript
$("#imageUrl").change(function() {
var t = $("#imageUrl").val()
var expression = https?:\/\/(www\.)?[[email protected]:%._\+~#=]{2,256}\.[a-z]{2,4}\b([[email protected]:%_\+.~#?&//=]*)(.jpg|.png|.gif);
var regex = new RegExp(expression);
if (t.match(regex)) {
alert("Successful match");
} else {
alert("No match");
}
});
HTML
<input id="imageUrl" name="bg" placeholder="https://website.com/image" type="url">
Ответ 3
Пожалуйста, перейдите по приведенному ниже коду, вы получите правильный или недопустимый URL-адрес изображения, размывая текстовое поле.
function TextBoxChange()
{
var textboxValue=$("input[name=bg]").val();
var pattern=/https?:\/\/.*\.(?:png|jpg|gif)/i;
//alert(/https?:\/\/.*\.(?:png|jpg|gif)/i.test(textboxValue));
if(pattern.test(textboxValue))
{
$("#errorMsg").text("valid");
}
else
{
$("#errorMsg").text("invalid");
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="bg" placeholder="https://website.com/image" onblur="TextBoxChange()" type="url" >
<label id="errorMsg"></label>