jQuery on('click')在单击时不起作用

时间:2018-09-14 08:02:22

标签: javascript jquery html

因此,我目前正在从事此项目,但我遇到了这个问题。我尝试查看控制台,但单击该按钮时未显示任何内容。我想做的是单击按钮时,它将触发文件输入,但是到目前为止,当我单击按钮时,什么也没有发生,甚至没有显示错误。(代码基于此处的回答问题:Bootstrap form upload file layout)你们可以帮助我找出我做错了什么

这些是代码

TabUploadDokumen.html

<script>
$(document).ready(function () {
    /* Some code here */
});

$('#btn_IdentitasKTP/Paspor').on('click', function () {
    $('#file_IdentitasKTP/Paspor').trigger('click')
});

$('#file_IdentitasKTP/Paspor').change(function () {
    var file_name = this.value.replace(/\\/g, '/').replace(/.*\//, '');
    $('#text_IdentitasKTP/Paspor').val(file_name);
});
</script>

<!--Some other code -->    
<div class='form-group'>
    <label class='control-label'>Nama Dokumen<br /><span style='font-weight:normal;'>Silahkan scan/foto dokumen Anda disini</span></label>
    <div class='form-group'>
        <label for="text_IdentitasKTP/Paspor" id="lbl_IdentitasKTP/Paspor" class="control-label">Identitas(KTP/Paspor)</label>
    </div>
    <div class="input-group">
        <input type="file" id="file_IdentitasKTP/Paspor" name="name_file_IdentitasKTP/Paspor" accept="image/jpg,image/jpeg,application/pdf,image/png" style="display: none" />
        <input type="text" class="form-control" id="text_IdentitasKTP/Paspor" readonly />
        <span class="input-group-btn">
            <button class="btn btn-default" type="button" id="btn_IdentitasKTP/Paspor">Upload KTP/Paspor</button>
        </span>
    </div>`
</div>
<!-- Some other code -->

如果有帮助,我正在使用ASP.NET MVC 5和Bootstrap版本3.00和Jquery版本jquery版本1.11.1。

预先感谢

2 个答案:

答案 0 :(得分:0)

on('click')函数必须在$(document).ready函数中运行,否则它将在DOM准备就绪之前运行,并且找不到要绑定的元素。

$(document).ready(function () {
    $('#btn_IdentitasKTP\\/Paspor').on('click', function () {
    $('#file_IdentitasKTP\\/Paspor').trigger('click')
  });
});

(并按照另一个答案中的建议转义斜线)

答案 1 :(得分:0)

它不起作用,因为脚本标记在html元素之前呈现。如果您按如下所示更改代码,它将起作用

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!--Some other code -->
<div class='form-group'>
    <label class='control-label'>Nama Dokumen<br /><span style='font-weight:normal;'>Silahkan scan/foto dokumen Anda disini</span></label>
    <div class='form-group'>
        <label for="text_IdentitasKTP_Paspor" id="lbl_IdentitasKTP_Paspor" class="control-label">Identitas(KTP/Paspor)</label>
    </div>
    <div class="input-group">
        <input type="file" id="file_IdentitasKTP_Paspor" name="name_file_IdentitasKTP_Paspor" accept="image/jpg,image/jpeg,application/pdf,image/png" style="display: none"  />
        <input type="text" class="form-control" id="text_IdentitasKTP_Paspor" readonly />
        <span class="input-group-btn">
            <button class="btn btn-default" type="button" id="btn_IdentitasKTP_Paspor" >Upload KTP/Paspor</button>
        </span>
    </div>`
</div>

<script>
    $(document).ready(function () {
        /* Some code here */
    });

    $('#btn_IdentitasKTP_Paspor').on('click', function () {
        $("#file_IdentitasKTP_Paspor").click()
    });

    $('#file_IdentitasKTP_Paspor').change(function () {
        var file_name = this.value.replace(/\\/g, '/').replace(/.*\//, '');
        $('#text_IdentitasKTP_Paspor').val(file_name);
    });
</script>
<!-- Some other code -->