在事件处理程序中获取表单元素

时间:2014-09-13 14:02:39

标签: javascript html forms

我想向所有onSubmit添加HTML Forms个事件,以验证提交文件大小并阻止其通过javascript提交。

问题是我没有id的{​​{1}},也没有form的{​​{1}}。现在,我如何访问所需file input element的值?

每个页面中可能有多个input,其中forms个未知,但每个id只有一个form。该元素的file input element也是未知的。

示例id

form

和我使用的javascript:

<form onSubmit="checkSize(1000000)" enctype="multipart/form-data" action="changedata.php" method="post" >
      <input class="user_upload_file" type="file" name="file" />
      <input type="submit" value="submit" />
 </form>

此外,我无法更改所有function checkSize(max_img_size) { //file_input_id is unknown so, the following input could not be defines: var input = document.getElementById("file_input_id"); // check for browser support (may need to be modified) if(input.files && input.files.length == 1) { if (input.files[0].size > max_img_size) { alert("File size is too big. "); return false; } } return true; } 的{​​{1}},这非常耗费时间。我也不要使用id

感谢您的想法

1 个答案:

答案 0 :(得分:1)

通过内部事件属性包含的事件处理程序在它们所附加的元素的上下文中被调用,您可以像任何其他变量一样传递它。

onsubmit="checkSize(1000000, this)"

从那里,您可以使用getElementsByTagNamequerySelector等标准DOM方法以及elements属性来查找后代元素。