2014-09-13 80 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

相關問題