天天看點

關于button和form送出的一些問題

1.form 中type 為submit 和button的差別

submit是button的一個特例,也是button的一種,它把送出這個動作自動內建了。 如果表單在點選送出按鈕後需要用JS進行處理(包括輸入驗證)後再送出的話,通常都必須把submit改成button,即取消其自動送出的行為,否則,将會造成送出兩次的效果,對于動态網頁來說,也就是對資料庫操作兩次。或者在使用submit時驗證時加return true或false。   submit和button,二者都以按鈕的形式展現,看起來都是按鈕,所不同的是type屬性和處發響應的事件上,submit會送出表單,button不會送出表單. 兩者主要差別在于: submit預設為form送出,可以送出表單(form). button則響應使用者自定義的事件,如果不指定onclick等事件處理函數,它是不做任何事情.當然,button也可以完成表單送出的工作. INPUT   type=submit 即發送表單,按回車送出表單    INPUT   type=button 就是單純的按鈕功能,送出的是innerTEXT     2.本人所做的一個小執行個體   

<form id="search-form" >
             <input type="text" name="keyword" placeholder="搜尋明星名稱"/>
             <input type="hidden" name="category" value="明星"/>
             <button type="button" onclick="changeKeyword(this);">搜尋</button>
             </form>       

在按下這個按鈕的時候并不想它直接送出,而是去執行一個函數。就可以這樣寫,把type改成button就會去執行函數.

這時候又遇到了另外一個問題,我想得到keyword裡面輸入的關鍵字該怎麼辦,解決方法。

function changeKeyword(elem){
        var $form = $(elem).parents("form");
        console.log($form.serialize());
    }      

這個就會把整個form裡面的值都列印出來。

如果要得到單個的值,也可以這樣

function changeKeyword(elem){
         var val = $("input[name=keyword]").val();
        console.log(val);
    }      

這樣就可以得到keyword的值

轉載于:https://www.cnblogs.com/qianxinxu/p/5607838.html