无法使用 javascript 在用户控件中获取 FileUpload 的属性“值”
Unable to get property 'value' of FileUpload in a UserControl using javascript
我在母版页上包含一个用户控件(带有文件上传),如下所示:
母版页
<uc:uploadFiles ID="UC1" runat="server"/>
uploadFiles.ascx
<script type="text/javascript">
function ValidateUpload() {
var FileUpload_function = document.getElementById('myfile');
if (FileUpload_function.value == '') {
return false;
}
else {
//do stuff }
return true;
}
</script>
<div id="div_FileUpload" class="FileUpload_content" runat="server">
<asp:FileUpload ID="myfile" class="FileUpload" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="myfile" ClientValidationFunction="ValidateUpload" />
</div>
当我运行页面时,我收到由自定义验证程序引起的以下错误:无法获取未定义或空引用的属性"值"。
我的猜测是,在呈现整个页面之前会验证 FileUpload 值,因为当我删除用户控件并将代码直接移动到母版页时,自定义验证器工作正常。
如何解决问题?
您需要
在document.getElementById
中使用.ClientID
。当你在用户控制中使用它时,cotnrol id - myfile 可能会重命名为其他名称,例如 ct00_myfile
在这种情况下,如果您执行相同的 js 代码,它会给你 null。
您需要使用以下 js 代码。
var FileUpload_function = document.getElementById('<%=myfile.ClientID %>');
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jquery试图按名称获取按钮位置
- 如何在jQuery中获取元素的形式
- 如何在php文件中获取$.post-ajax传递的值
- 在Shopify中获取博客文章的图片
- 使用Javascript获取所选选项ID
- 在jQuery中获取表的行索引
- 使用jquery将mysql数据获取到新的表行中
- 在动态创建的元素上获取对特定选择器的引用
- 从城市名称获取惊喜
- Angular只从数组中获取所需的数据
- 无法将数据从firebase获取到我的html页面
- 从ajax请求中获取javascript对象
- 如何从画布上的某个移动事件中获取X和Y
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在PHP中使用$_POST获取Select元素值
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 使用asp.net FileUpload时从javascript获取图像宽度和高度
- 无法使用 javascript 在用户控件中获取 FileUpload 的属性“值”
- jQuery fileupload -获取上传文件列表