我尝试为输入文件创建按钮重置。每次输入文件都有值,然后一个按钮显示重置输入文件。问题是,我有6个输入文件。当我在其中一个输入文件上传图像时,所有按钮都会显示,甚至其他输入文件也没有值。 如何具体按钮?
我的代码就像这样
$("#inputFile1").change(function(){
if($(this).val() == "")
$('.reset').css({"display": "none"});
else
$('.reset').css({"display": "block"});
})
$("#inputFile2").change(function(){
if($(this).val() == "")
$('.reset').css({"display": "none"});
else
$('.reset').css({"display": "block"});
})
$("#inputFile3").change(function(){
if($(this).val() == "")
$('.reset').css({"display": "none"});
else
$('.reset').css({"display": "block"});
})
heres jsfiddle https://jsfiddle.net/30uv0kfa/
答案 0 :(得分:1)
你可以像
一样$("#inputFile1,#inputFile2,#inputFile3,#inputFile4,#inputFile5").change(function(){
if($(this).val() == "")
$(this).next('.reset').css({"display": "none"});
else
$(this).next('.reset').css({"display": "block"});
})
答案 1 :(得分:1)
我用input
围绕每组button
文件和div
并简化了您的JS代码。
$(document).ready(function() {
$(".input-file").on("change", function(){
if($(this).val() == "") {
$(this).parent().find(".reset").css({"display": "none"});
} else {
$(this).parent().find(".reset").css({"display": "block"});
}
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input class="input-file" id="inputFile1" type="file"/>
<button class="reset" style="display:none">reset</button>
</div>
<div>
<input class="input-file" id="inputFile2" type="file"/>
<button class="reset" style="display:none">reset</button>
</div>
<div>
<input class="input-file" id="inputFile3" type="file"/>
<button class="reset" style="display:none">reset</button>
</div>
<div>
<input class="input-file" id="inputFile4" type="file"/>
<button class="reset" style="display:none">reset</button>
</div>
<div>
<input class="input-file" id="inputFile5" type="file"/>
<button class="reset" style="display:none">reset</button>
</div>
&#13;
答案 2 :(得分:0)
将单个ID设置为按钮可以完成这项工作。检查一下
$("#inputFile1").change(function(){
if($(this).val() == "")
$('.reset1').css({"display": "none"});
else
$('.reset1').css({"display": "block"});
})
答案 3 :(得分:0)
有一种简单的方法可以做到这一点。我编辑了你的小提琴 JS fiddle URL
$("input[type='file']").change(function(){
if($(this).val() == "")
$(this).next('.reset').css({"display": "none"});
else
$(this).next('.reset').css({"display": "block"});
});
答案 4 :(得分:0)
class
/ attribute
选择器代替id
来减少冗余.next(SELECTOR)
立即选择匹配元素集中每个元素的后续兄弟toggle(BOOLEAN)
来播放reset
按钮的可见性,而不是.css
方法
$('[type="file"]').change(function() {
$(this).next('button').toggle(this.value !== '');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input id="inputFile1" type="file" />
<button class="reset" style="display:none">reset</button>
<input id="inputFile2" type="file" />
<button class="reset" style="display:none">reset</button>
<input id="inputFile3" type="file" />
<button class="reset" style="display:none">reset</button>
<input id="inputFile4" type="file" />
<button class="reset" style="display:none">reset</button>
<input id="inputFile5" type="file" />
<button class="reset" style="display:none">reset</button>
答案 5 :(得分:0)
如果您仍希望为每个按钮使用相同的class
,则可以为每个按钮添加唯一id
并在脚本中使用它。
$("#inputFile1").change(function(){
if($(this).val() == "")
$('#rfile1').css({"display": "none"});
else
$('#rfile1').css({"display": "block"});
})
$("#inputFile2").change(function(){
if($(this).val() == "")
$('#rfile2').css({"display": "none"});
else
$('#rfile2').css({"display": "block"});
})
$("#inputFile3").change(function(){
if($(this).val() == "")
$('#rfile3').css({"display": "none"});
else
$('#rfile3').css({"display": "block"});
})
$("#inputFile4").change(function(){
if($(this).val() == "")
$('#rfile4').css({"display": "none"});
else
$('#rfile4').css({"display": "block"});
})
$("#inputFile5").change(function(){
if($(this).val() == "")
$('#rfile5').css({"display": "none"});
else
$('#rfile5').css({"display": "block"});
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="inputFile1" type="file"/>
<button class="reset" id="rfile1" style="display:none">reset</button>
<input id="inputFile2" type="file"/>
<button class="reset" id="rfile2" style="display:none">reset</button>
<input id="inputFile3" type="file"/>
<button class="reset" id="rfile3" style="display:none">reset</button>
<input id="inputFile4" type="file"/>
<button class="reset" id="rfile4" style="display:none">reset</button>
<input id="inputFile5" type="file"/>
<button class="reset" id="rfile5" style="display:none">reset</button>
&#13;
另一种不为每个按钮添加唯一ID的方法是为change
创建常规input[type='file']
事件:
$("input[type='file']").change(function(){
if($(this).val() == "")
$(this).next('.reset').css({"display": "none"});
else
$(this).next('.reset').css({"display": "block"});
});