启用多个文件上传的按钮-HTML

时间:2018-06-24 18:31:27

标签: javascript html

我的html中有此代码,我要在其中上传三个文件。除非选择了文件,否则将禁用所有相应文件上传的提交按钮。

$(document).ready(
  function() {
    $('input:file').change(
      function() {
        if ($(this).val()) {
          $('input:submit').attr('disabled', false);
        }
      }
    );
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="#" method="post">
  <input type="file" name="fileInput1" id="fileInput1" />
  <input type="submit" value="submit" disabled />
</form>
<form action="#" method="post">
  <input type="file" name="fileInput2" id="fileInput2" />
  <input type="submit" value="submit" disabled />
</form>
<form action="#" method="post">
  <input type="file" name="fileInput3" id="fileInput3" />
  <input type="submit" value="submit" disabled />
</form>

我担心的是,如果我为第一个表单选择一个文件,那么其他表单中的“提交”按钮也会被启用。

2 个答案:

答案 0 :(得分:1)

您需要使用遍历,才能在正确的表单中找到正确的按钮。

$(document).ready(
    function(){
        $('input:file').change(
            function(){
                if ($(this).val()) {
                    $(this).siblings('input[type=submit]').attr('disabled',false); 
                } 
            }
            );
    });

这将仅查找与文件输入同级的输入,这意味着它们在同一父元素(以您的情况为同一格式)内。

答案 1 :(得分:1)

选项1: 无论元素的顺序如何,这都会启用所需的按钮:

$(document).ready(
  function(){
    $('form input:file').change(
        function(){
            if ($(this).val()) {
                    // Select button of this form
                    $(this).parent('form')
                        .children('input:submit')
                        .attr('disabled',false);
            } 
        }
    );
});

查看此jsFiddle

选项2::如果“输入提交”始终位于“输入文件”旁边,这将启用它:

$(this).next().attr('disabled',false); 

代替此:

$('input:submit').attr('disabled',false); 

查看此jsFiddle

相关问题