javascript
  • jquery
  • html
  • forms
  • 2016-06-28 31 views 1 likes 
    1

    我有一個表格:jQuery的`.click`提交任何形式的

    <form class=" id="form-edit_usr" action="edit_usr.php" method="post" enctype="multipart/form-data"> 
    

    內部的形式,我有另一種形式:

    <button id="usrPhoto" class="btn"> 
        <img src="" width='100' height='140'> 
    </button> 
    
        <form id="uploadForm" method="post"> 
        <input type="file" id="uploadPhoto" name="uploadPhoto" data-usr="" style="display: none;"/> 
        </form> 
    

    爲 「主」,因爲我有一個「提交按鈕」

    <input type="submit" class="btn" value="Update" /> 
    </form> 
    

    與jQuery我控制文件輸入:

    $('#usrPhoto').on('click', function(){ 
        //Check if user is selected 
        selectedUsr = $('#choosen_usr_email').val(); 
        if(selectedUsr){ 
         //If user is selected open file dialog 
         $("#uploadPhoto").click(); 
        } 
    }) 
    

    我的問題是,當我按下#userPhoto元素,
    #uploadPhoto應打開文件對話框,但它也提交我的主要形式。

    如何防止.click()提交所有表單/按鈕?

    +1

    你有另一個表單中的表單? – rybo111

    +0

    什麼是'usrPhoto'?另一個「提交」按鈕? –

    +0

    http://stackoverflow.com/questions/555928/is-it-valid-to-have-a-html-form-inside-another-html-form –

    回答

    3

    按照HTML規範。您不能在另一個表單中包含表單。

    在瀏覽器的檢查器中檢查生成的HTML,您將看到「內部表單」缺失。

    你可以用兩種不同的形式打破它們,或者使用純JS來上傳文件。 有一個關於它的問題(和答案)here

    0

    也許你可以使用jQuery提交功能

    $('.button').on('click',function(){ 
        $('.formID').submit(); 
    }); 
    
    相關問題