【问题标题】:Trigger onserverclick without physically clicking button无需物理单击按钮即可触发 onserverclick
【发布时间】:2014-12-19 16:06:16
【问题描述】:

我想从用户那里抽象出文件浏览对话框,只显示一个上传按钮,如下所示:

<input type="button" id="uploadFile" value="Upload" /> 
<div class="hidden">
    <form id="uploadFileForm" method="post" enctype="multipart/form-data">
        <input type="file" id="browseForFiles" />
        <input type="button" id="submitFile" value="Submit File" runat="server" 
               onclick="return true;"
               onserverclick="SubmitFile_Click" />
    </form>
</div>

$("#uploadFile").click(function () {
    // trigger hidden file dialog
    $("#browseForFiles").click(); // works
});

$("#browseForFiles").change(function () {
    $("#submitFile").click(); // doesn't work; doesn't call onserverclick
});

物理单击submitFile 按钮可以正常工作并调用服务器端方法,但由于我希望隐藏实际的服务器端按钮,因此用户无法物理单击它。 如何在 jQuery/Javascript 中伪造物理点击?

编辑:
我也试过了:

<input type="submit" id="submitFile" value="Submit File" runat="server" 
       onclick="return true;"
       onserverclick="SubmitFile_Click" />

$("#uploadFileForm").submit(); // doesn't work either

【问题讨论】:

  • 也许可以试试:$('#submitFile')[0].click(); 请注意,我不是 ASP 人
  • @A.Wolff:谢谢!在我修复了我的代码后,你的建议也奏效了。

标签: javascript jquery asp.net


【解决方案1】:

你试过了吗?

$('#uploadFileForm').submit()

【讨论】:

    【解决方案2】:

    $("input[id$='submitFile']").click(); 有效。

    我没有意识到 ASP.NET 将元素的 ID 替换为 ctl00_PlaceHolderMain_submitFile 之类的东西,即使使用了常规的 HTML 控件!

    $("input[id$='submitFile']")[0].click(); 也可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2015-04-15
      • 2020-12-31
      • 2013-05-29
      • 1970-01-01
      相关资源
      最近更新 更多