Javascript 检查是否已选择输入文件?
我目前正在一个网站上工作,您可以在该网站上载文件:Javascript 检查是否已选择输入文件?,javascript,html,asp.net-mvc,Javascript,Html,Asp.net Mvc,我目前正在一个网站上工作,您可以在该网站上载文件: <input type="file" name="file" id="file" class="form-control" /> 然后,我有一个按钮,您可以按下该按钮上载所选文件: <button class="btn btn-primary" type="submit">Upload CV</button> 上传简历 在这里,我想按钮是可点击的,只有当一个文件已被选中。这是否可能使用JS实现,以及
<input type="file" name="file" id="file" class="form-control" />
然后,我有一个按钮,您可以按下该按钮上载所选文件:
<button class="btn btn-primary" type="submit">Upload CV</button>
上传简历
在这里,我想按钮是可点击的,只有当一个文件已被选中。这是否可能使用JS实现,以及如何实现
提前谢谢 使用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');
}
}
);
});
在按钮标记中添加禁用的属性 您可以使用下面的原生JS来实现这一点。选择文件后,该按钮处于启用状态,但如果未选择文件,则该按钮处于禁用状态
var-button=document.querySelector('button[type=submit]');
button.disabled=true;
document.getElementById('file').addEventListener('change',function(){
如果(this.value.length>0){
button.disabled=false;
}否则{
button.disabled=true;
}
});代码>
上传简历
您可以使用JQuery,正如前面所说的那样,但在执行按钮代码之前,最好先验证文件是否已被选中
<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>
上传简历
$(函数(){
//当输入值更改时
$(“#myFile”).change(函数(){
if($(this.val())
{
$(“#myBtn”).prop(“disabled”,false);
}
其他的
{
$(“#myBtn”).prop(“disabled”,true);
}
});
//单击按钮时
$(“#myBtn”)。单击(函数(){
if($(“#myFile”).val())
{
console.log(“所选文件”);
}
});
});
我对JS很陌生,但我想,当按下按钮时,可以检查是否选择了一个文件,但这并不是我想要实现的目标。我还没有尝试过任何东西,因为我完全不知道如何去做。看看HTML5表单验证。内置…这就像一个符咒,回发后,按钮再次被激活:D谢谢!谢谢你的解决方案!joalcego说,这很有效D