2014-07-02 70 views
1

在我的項目中,我需要使用<select>中的選定值和文本更新骨幹模型。

爲此,我呼籲

model.set 'value', $('select').val() 
model.set 'value_text', $('select option:selected').text() 

(我用咖啡腳本以及)。由於我目前使用的jQuery v2.0.3中存在一些問題,因此我收到以下警告:

Attr.specified已棄用。它的價值永遠是真的。

我知道有這個警告的SO問題,但我要問的東西完全不同:

由於更新到jQuery的(這裏的問題可能是固定的)的新版本是不可能的接下來的幾個月,我想問問是否有其他方式接收所選選項的文本,而不是上面使用的文本。如果沒有其他人使用jQuery,我不反對純粹的JS解決方案。

任何幫助,高度讚賞。

編輯 for @KevinB:該警告是由詢問該選項是否存在selected屬性引起的。

+0

你試過選項:active?你嘗試過哪些僞選擇器? – fauverism

+2

究竟導致警告的原因是什麼?使用:選中?或在選項上使用.text? .val()在選擇?上。切除導致它的部分顯然是解決方案。這或者乾脆忽略這個警告,因爲編碼會導致代碼不易讀。 –

+0

你能爲此創建jsfiddle嗎? –

回答

2

要*修復*而不更改其他任何東西,您可以使用.filter。

$('select option').filter(function (i) { return this.selected; }).text(); 
2

我更喜歡用不同的方法做到這一點。看代碼。

內部視圖。

events: 
    "change input":"updateModel" 
    "change select" : "SelectedItem" //Just for example. 

selectedItem:(element)-> 
    selectedOption = element.target.selectedOptions 
    alert **selectedOption.item().value** // the value of the selected item. now you can set it on model. 

updateModel:(element)-> 
    @model.setNew(element.target.name, element.target.value) 

內部模型。

setNew:(newName, newValue)-> 
    @set newName, newValue 

Html文件。

<select> 
<option value="renan">Renan</option> 
<option value="carvalho">Carvalho</option> 
</select> 

<input type="text" name="customer" /> 

希望它有幫助。

+0

這可以與''一起使用,但''本身,因爲而不是元素的名稱,我需要它的文本... – shadyyx

+1

我更新了我的答案。現在它適用於你的情況。 – rcarvalho