gpt4 book ai didi

javascript - 使用 javascript 启用/禁用 ASP.NET 控件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:06 24 4
gpt4 key购买 nike

我正在构建一个页面以在服务器上上传 Excel 文件以进行导入操作。所以找到了一个javascript来检查文件选择的文件扩展名无效其他文件类型。现在我尝试启用上传 ASP.NET 按钮,但 javascript 返回错误 document.getElementById(...) is null。

这里是代码:

<script type="text/javascript" language="javascript" defer="defer">
function enableControl() {
document.getElementById('button').disable = false;
}

function disableControl() {
document.getElementById('button').disable = true;
}

function checkExcelFileUpload(elem) {
var filePath = elem.value;
if (filePath.indexOf('.') == -1)
return false;
var validExtensions = new Array();
var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
//Add valid extentions in this array
validExtensions[0] = 'xls';
//validExtensions[1] = 'pdf';
for (var i = 0; i < validExtensions.length; i++) {
if (ext == validExtensions[i])
return true;
}
elem.value = '';
alert('Sono ammessi solo file di Excel 97-2003');
return false;
}
</script>
<asp:FileUpload ID="fileupload" runat="server" size="50" onchange="javascript:try{if(checkExcelFileUpload(this) == true){enableControl();}else{disableControl();}}catch(err){alert(err);};" />
<asp:Button ID="button" runat="server" Text="Upload" Enabled="False" />

我在互联网上搜索并找到了 getElementById 的其他语法,但我仍然遇到这个问题。你能帮帮我吗?

谢谢

最佳答案

选项 1由于您的按钮是服务器端控件,因此呈现的 ID 将与您指定的不同。使用以下代码生成 ctl$body$button (根据您的控件的嵌套,沿着这些线的东西)。

document.getElementById('<%= button.ClientID %>')

选项 2如果您使用的是 ASP.NET 4,则可以使用 Static客户端 ID 模式。

<asp:Button ID="button" runat="server" ClientIDMode="Static" Text="Upload" Enabled="False" />

参见 http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx

关于javascript - 使用 javascript 启用/禁用 ASP.NET 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14343771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com