【问题标题】:Passing entire tag in Javascript as a parameter将 Javascript 中的整个标记作为参数传递
【发布时间】:2016-12-03 15:11:37
【问题描述】:

我在 jQuery 中有一个这样的函数:

  $('#<%=FileUpload1.ClientID%>').change(function () {
          var l = document.getElementById('popap');
          l.click();
         readURL(this);
      });

这里是 readURL 函数:

function readURL(input) {
          if (input.files && input.files[0]) {
              var reader = new FileReader();
              reader.onload = function (e) {
                  $('#before').attr('src', e.target.result);
              }

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

正如您在更改事件中看到的,我将 this 作为参数传递给 readURL 函数,然后在 readURL 函数中访问它的属性。

我的问题是,如果此事件是在单击按钮时触发的,我将如何做同样的事情?只有这一次我需要将在文件上传元素上选择的内容传递给 readURL 函数。我尝试过类似以下的方法:

  $('#<%=btnEdit.ClientID%>').click(function (e) {
                  e.preventDefault();
                  var l = document.getElementById('popap');
                  l.click();
                  readURL(document.getElementById("FileUpload1"));
              });

但这并没有真正做任何事情,图片根本没有显示......?

我做错了什么?

【问题讨论】:

  • 当您正确编码第一个代码示例时,实际 ID 不是“FileUpload1” - 它是&lt;%=FileUpload1.ClientID%&gt;。您必须从 ASP 中提取实际 ID 并使用它,因为这是浏览器看到的标记中使用的实际 ID。
  • 是的,这就是问题所在,非常感谢!!! :)

标签: javascript jquery asp.net parameters webforms


【解决方案1】:

使用 ObjectCreateURL,它更快...

function readURL(input) {
  if (input.files && input.files[0]) {
    var url = Object.createObjectURL(input.files[0]);
    $('#before').attr('src', url);
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    相关资源
    最近更新 更多