HTML所需的函数与javascript,其中所需的函数不起作用

时间:2016-03-12 13:47:12

标签: javascript php jquery html

任何人都可以帮助我这个必需的功能不起作用。我正在我的html / php网页上传一张图片,在我上传图片之前,我设置了一个下载选项,即上传与否,这是我的代码:

<script>
    function papeles()
    {
        var x = document.getElementById('tagoan1').value;

        if (x == "YES")
        {
            //  alert('aaaa');
            $('#imgInp').addClass("required");
            $('#imgInp').removeClass("hidden");
            $('#blah').removeClass("hidden");
        } else
        {
            //alert('bbbbb');
            $('#imgInp').addClass("hidden");
            $('#imgInp').removeClass("required");
            $('#blah').addClass("hidden");

        }
    }
</script>

<div class="col col-sm-5">

    <label>Attachment </label>
    <select class="form-control" id="tagoan1" name="taguan" onchange="papeles()" required disabled>
        <option value="">With Attachment?</option>
        <option value="YES">Yes</option>
        <option value="NO">No</option>
    </select>
</div>

<div class="row text-center">
    <div class="col col-sm-6">
        <div class="form-group" style="margin:0;">
            <input type='file' name="image" id="imgInp" value="" class="hidden required btn btn-block btn-sm" style="padding-left:3em;width:300px"/>
        </div>
        <img id="blah" src="customer/tagoan/images/noimage.png"  height="200px" width="300px" name="tae" border-color="white" placeholder="" class="hidden"/>

    </div>
</div>

<script src="js/jquery-1.11.3.min.js"></script>
<script>
         function readURL(input) {

             if (input.files && input.files[0]) {
                 var reader = new FileReader();

                 reader.onload = function (e) {
                     $('#blah').attr('src', e.target.result);
                 }

                 reader.readAsDataURL(input.files[0]);
             }
         }

         $("#imgInp").change(function () {
             readURL(this);
         });

</script>

问题是当我点击是但我不选择文件时,图片仍然会提交它不应该提交,因为添加类需要如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

当您隐藏输入时,它不会从页面中删除。因此,文件输入保留在表单中,并且无论是否隐藏,都会进行汇总。你需要的是从DOM中删除输入:

    if (x == "YES")
    {
        $('#imgInp').remove() // file input gone
        $('#blah').removeClass("hidden");
    } else
    {
        //you should add an ID to the parent of imgInp instead of referring as .form-group
        $('.form-group').prepend("<input type='file' name='image' id='imgInp' value='' class='required btn btn-block btn-sm' style='padding-left:3em;width:300px'/>")
        $('#blah').addClass("hidden");

    }

答案 1 :(得分:0)

如果你只使用jQuery的.hide().show(),还可以吗?