2014-09-13 43 views
0

我想将onSubmit事件添加到所有HTML Forms以验证提交文件大小并防止通过javascript提交。在事件处理程序中获取表单元素

问题是我没有formid,既不是那些file input element。现在,我如何访问期望的input的值?

这可能与未知id的每一页几个forms但每个form只有一个file input element。元素的id也是未知的。

例如form

<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> 

,我使用JavaScript:

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; 
} 

而且,我不可能改变所有的file input S的id,这真是费时。我也不使用jQuery

感谢您的想法通过内在的事件属性包括

回答

1

调用事件处理程序在它们所连接的元素的情况下,你可以通过周围像任何其他变量。

onsubmit="checkSize(1000000, this)" 

从那里,你可以使用标准的DOM方法,如getElementsByTagNamequerySelectorelements财产一起找后代元素。

+0

非常感谢你昆汀,你的回答帮了我很多。 – Ormoz 2014-09-30 06:41:07

相关问题