這個題乍一看,簡單,再看,仍是簡單,仔細一看,是否是得查一下了。vue
反正小韭菜是每次用到都須要去查一番。jquery
今天我來分框架給你們說一番。數組
獲取元素: 基本上有兩種獲取方式框架
:text
、 :file
、 :radio
、 :checkbox
、type
: input[type=text]
、 input[type=file]
、 input[type=radio]
、 input[type=checkbox]
、獲取值: 通常是使用val()
測試
文本框怕是這裏最簡單的也是最經典的一個了。
獲取:this
修改:code
這裏咱們假設頁面中只有一個text文件框,若是頁面中有多個,可使用eq
或者添加類名
來定位到具體的某個文本框事件
radio(單選按鈕),通常咱們會想要獲取到選中
了哪一個值。
選中的單獨按鈕項表示checked值爲非false值,即任意一個不爲false的值。ip
radio一樣也是有兩種方法。字符串
但,radio自己是一個數組的,若是想要獲取或修改單獨的值,須要使用eq或者設置具體類名.
獲取:
注:radio與checked沒有空格
修改:
單選按鈕,選中的話就要設置checked屬性爲checked
或者爲true
checkbox與radio是同樣的,選中的值checked值爲true。
可是,不一樣的是,checkbox是多選,選中的值是一個數組
,若是都要獲取選中的全部值,須要對選項進行遍歷。
獲取:
//獲取全部選中的值 var arr = []; $('input[type=checkbox]:checked').each(function(i) { console.log($(this).val()) arr.push($(this).val()) })
修改:
select下拉列表框,這裏就有些不一樣了,由於它選中的項使用的:selected
並且,它並不能使用type,它的獲取方法有些豐富了,其實總體來講,就是獲取select,或者selected選中的值
獲取:
注:這裏select 與:selected之間就要有空格
了
修改:
固然,設置select須要設置下拉列表中已經存在的值,若是設置一個列表中沒有值,會顯示空。
file與text差很少,兩種最基礎的方法
獲取:
修改:
改是不可能改的。不能修改file中的值
,若是想修改,只能再經過文件框再選擇一遍。
以上介紹的方法,小韭菜都作了測試,供你們參考
jquery測試連接 傳送門
Vue中就有一丟丟簡單粗暴,沒有jquery那麼多的分類,在這些表單控件中,通通一個東西v-model
搞定。
在vue中,不論是text、checkbox、radio、select,沒有了:checked與:selected的區別,所有都用v-model對數據進行綁定。可是在vue中,它們幾個有了事件的區分。
用起來是真的簡單方便,直接上代碼吧
template
<input type="text" v-model="message" @input="textChange"/>
JS
data(){ return { message:'abc' } }, methods:{ textChange(){ console.log(this.message) } }
咱們在data中聲明定義了message變量,使用v-model
將message變量與text文本進行綁定。
這樣,咱們想要獲取或者修改文本框的值時,均可以直接操做message.
text的事件是input
,當你輸入時,message值會實時變化。
template
<input type="radio" value="男" v-model="sex" name="sex" @change="sexChange"/> <input type="radio" value="女" v-model="sex" name="sex" @change="sexChange"/>
JS
data(){ return { sex:'' } }, methods:{ sexChange(){ console.log(this.sex) } }
與text同理,不一樣的是,由於radio有不少的選項,要每個
選項中都有v-model,而且進行@change事件綁定。
radio的事件是change
template
<input type="checkbox" name="check" value="足球" v-model="check" @change="checkChange"/> <input type="checkbox" name="check" value="籃球" v-model="check" @change="checkChange"/> <input type="checkbox" name="check" value="電影" v-model="check" @change="checkChange"/> <input type="checkbox" name="check" value="閱讀" v-model="check" @change="checkChange"/>
JS
data(){ return { check:[],//重點 } }, methods:{ checkChange(){ console.log(this.check) } }
這裏,data中定義check變量時,最好定義一個數組
,由於多選框的值不是一個,設置成數組後,vue會自動根據用戶選擇的值對這個數組進行增長刪除。
若是設置其它的值,好比字符串,會出現同時選中,同時消失的狀況。
checkbox的事件也是change
template
<select name="sele" id="sele" v-model="addre" @change="addreChange"> <option value="北京">北京</option> <option value="河北">河北</option> <option value="河南">河南</option> </select>
JS
data(){ return { addre:'', } }, methods:{ addreChange(){ console.log(this.addre) } }
select的用法能夠說與radio是同樣的了。
select的事件也是change
一樣是v-model
template
<input type="file" v-model="file" @change="fileChange"/>
JS
data(){ return { file:'', } }, methods:{ fileChange(){ console.log(this.file) } }
有了JQuery 與Vue的獲取表單控件的方法,那React與Angular如何實現呢?歡迎給小韭菜留言。