大佬教程收集整理的这篇文章主要介绍了jquery – 为什么隐藏文件输入时选择错误?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var activateFileSELEction = function( container ) { var container = container || $('body'); container.find(':file').each(function(i) { var thisInput = $(this); var thisLabel = thisInput.siblings('label'); if (thisLabel.length > 0 && !thisLabel.hasClass('file-input-label')) { var thisLabelDefaultText = thisLabel.html(); thisLabel.addClass('file-input-label'); thisInput.on('change',function(E) { if (thisInput.val()) { thisLabel.html(thisInput.val()); } else { thisLabel.html(thisLabelDefaultText); }; }); }; }); }; activateFileSELEction();
input { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <label for="myfile">SELEct 1</label> <input id="myfile" type="file" /> </div> <div> <label for="myfile">SELEct 2</label> <input id="myfile" type="file" /> </div> <div> <label for="myfile">SELEct 3</label> <input id="myfile" type="file" /> </div>
也在JSFiddle.
如果没有隐藏输入,一切正常:fiddle.
正如下面提到的nevermind,重复的输入ID可能存在问题,仍然在脚本中我没有解决和ID.此外,每个文件输入的更改会触发标签文本的更改,但错误的更改.
因此,单击任何标签时,将使用第一个输入字段.在文件选择之后,将更新代码中使用thisInput.siblings(‘label’)获得的相邻标签.即使3个输入字段可见,也是如此.
另一方面,如果直接单击输入字段,则使用该输入字段并更新相应的标签.
var activateFileSELEction = function (container) { var container = container || $('body'); container.find(':file').each(function (i) { var thisInput = $(this); var thisLabel = thisInput.siblings('label'); if (thisLabel.length > 0 && !thisLabel.hasClass('file-input-label')) { var thisLabelDefaultText = thisLabel.html(); thisLabel.addClass('file-input-label'); thisInput.on('change',function (E) { console.log("Input used: " + thisInput.data("field")); if (thisInput.val()) { thisLabel.html(thisInput.val()); } else { thisLabel.html(thisLabelDefaultText); }; }); }; }); }; activateFileSELEction();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p>Test by clicking on label 3 vs clicking on input field 3:</p> <div> <label for="myfile">SELEct 1</label> <input id="myfile" type="file" data-field="input1" /> </div> <div> <label for="myfile">SELEct 2</label> <input id="myfile" type="file" data-field="input2" /> </div> <div> <label for="myfile">SELEct 3</label> <input id="myfile" type="file" data-field="input3" /> </div>
以上是大佬教程为你收集整理的jquery – 为什么隐藏文件输入时选择错误?全部内容,希望文章能够帮你解决jquery – 为什么隐藏文件输入时选择错误?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。