В настоящее время я работаю над сайтом, где вы можете загрузить файл:
<input type="file" name="file" id="file" class="form-control" />
Затем у меня есть кнопка, которую вы можете нажать, чтобы загрузить выбранный файл:
<button class="btn btn-primary" type="submit">Upload CV</button>
Здесь я хотел бы, чтобы кнопка была кликабельной ТОЛЬКО , если файл был выбран. Возможно ли это с помощью JS и как?
Заранее спасибо!
3 ответа
Вы можете использовать JQuery, как сказал FullOfQuestions, но было бы также хорошо проверить, что файл был выбран перед выполнением кода кнопки!
<input type="file" name="file" id="myFile"/>
<!--Add disabled attribute to the button so that is appears disabled at page load-->
<button id="myBtn" type="submit" disabled>Upload CV</button>
<script type="text/javascript">
$(function () {
//when input's value changes
$("#myFile").change(function () {
if($(this).val())
{
$("#myBtn").prop("disabled", false);
}
else
{
$("#myBtn").prop("disabled", true);
}
});
//when button is clicked
$("#myBtn").click(function () {
if($("#myFile").val())
{
console.log("file selected");
}
});
});
</script>
Вы можете сделать это с родным JS ниже. Кнопка активируется, когда файл выбран, но если файл не был выбран, кнопка отключается.
var button = document.querySelector('button[type=submit]');
button.disabled = true;
document.getElementById('file').addEventListener('change', function () {
if (this.value.length > 0) {
button.disabled = false;
} else {
button.disabled = true;
}
});
<input type="file" name="file" id="file" class="form-control" />
<button class="btn btn-primary" type="submit">Upload CV</button>
Используя Jquery:
$(document).ready(
function(){
$('input:file').change(
function(){
if ($(this).val()) {
$('input:submit').attr('disabled',false);
// or, as has been pointed out elsewhere:
// $('input:submit').removeAttr('disabled');
}
}
);
});
Добавить отключенный атрибут в теге кнопки.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.