【问题标题】:Jquery call same function with parameter valueJquery使用参数值调用相同的函数
【发布时间】:2021-08-04 01:57:30
【问题描述】:

我想在 asp.net core razor 视图中通过多次按钮点击上传多个文件。

下面是我的 jquery 代码,它不起作用。

<script type="text/javascript" src="~/lib/jquery/dist/jquery.js"></script>
<script type="text/javascript">
    $(function() {
        $('#btnupload1').on('click', myFunction('#fileupload1'));
        $('#btnupload2').on('click', myFunction('#fileupload2'));
        $('#btnupload3').on('click', myFunction('#fileupload3'));
    })

    function myFunction(value) {
        var fdata = new FormData();
        var fileUpload = $(value).get(0);
        var files = fileUpload.files;
        fdata.append(files[0].name, files[0]);
        $.ajax({
            type: "POST",
            url: "/Contract/UpFiles",
            beforeSend: function(xhr) {
                xhr.setRequestHeader("XSRF-TOKEN",
                    $('input:hidden[name="__RequestVerificationToken"]').val());
            },
            data: fdata,
            contentType: false,
            processData: false,
            success: function(response) {
                if (response.length == 0)
                    alert('Some error occured while uploading');
                else {
                    $('#divPrint').html(response);
                }
            },
            error: function(e) {
                $('#divPrint').html(e.responseText);
            }
        });
    }
</script>

【问题讨论】:

  • 你能提供你得到什么样的错误信息吗?
  • 这没有按预期工作,没有出现任何错误
  • 如果您没有收到任何错误,可能是因为您的按钮未按预期绑定到任何功能。在这些情况下,如果有事件,您可以通过右键单击 ( Inspect ) 或从开发人员工具/检查器中检查其中一个按钮。
  • 如果我显示 alert("msg") 那么它只是在加载表单后显示。如果我删除警报功能,则它处于静音状态。
  • 我的要求是,从不同的文件上传按钮调用相同的上传功能。

标签: javascript html jquery asp.net-core asp.net-core-mvc


【解决方案1】:

一个可能的问题是当您将事件绑定到那些可能不存在的按钮时。 解决方案 1:

$(document).ready(function () {
 // your code 

});

如果您使用其他 JS 动态创建按钮,另一种解决方案

    $(document.body).on('click', '#btnupload1', function (e) {
 //  
myFunction('#fileupload1')

    })
    $(document.body).on('click', '#btnupload2', function (e) {
 //  
myFunction('#fileupload2')

    })

    $(document.body).on('click', '#btnupload3', function (e) {
 //  
myFunction('#fileupload3')

    })

【讨论】:

    【解决方案2】:

    抱歉,我错过了正确的呼叫方式。我已经解决了更改以下代码的问题。

    谢谢

     $('#btnupload').on('click', function () { myFunction('#fileupload'); });
        $('#btnupload2').on('click', function () { myFunction('#fileupload2'); });
        $('#btnupload3').on('click', function () { myFunction('#fileupload3'); });
        $('#btnupload4').on('click', function () { myFunction('#fileupload4'); });
        $('#btnupload5').on('click', function () { myFunction('#fileupload5'); });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      相关资源
      最近更新 更多