0

在我的index.html,我有一個選擇下拉菜單:爲什麼我無法獲得我的<select>字段的正確值?

<select id="car"> 
    <option value="bmw">BMW</option> 
    <option value="toyota">TOYOTA</option> 
</select> 

我的JS:

var c = $('#car'); 

var selection; 

c.change(function(){ 

    if(c.val()==='bmw'){ 

     selection = 'BMW'; 

    }else if(c.val()==='toyota'){ 

     selection = 'TOYOTA'; 

    } 

}); 

console.log(c.val()); 
console.log(selection); 

當頁面加載首先,初始選擇是寶馬,和我得到控制檯輸出「寶馬」這是罰款,然後我選擇「豐田」,但兩個弊油輸出仍然是「寶馬」。

如何獲取當前 值的選擇以外的jQuery .change(...)函數選擇已被改變?

_ __ _ __ _ __ 錯別字已得到修復 __ _ __ _ _

car.val()Selection都是我錯字這裏在後,在我的代碼中,我使用selectionc.val()

我的觀點是如何獲得當前選擇值超出jQuery change()函數。請不要討論我的排字錯誤任何更多。謝謝。

+1

哪裏,您使用內c.change車變量(...)從何而來?我無法在您發佈的代碼中的任何地方看到它。Alo,你聲明瞭一個變量Selection,但隨後使用選擇 - 據我所知,javascript是區分大小寫的。 – 2011-05-05 13:32:39

+0

我看到的第一件事:'var Selection;'應該是'var selection;'這實際上可能是你的問題。其他的事情:console.log甚至再次調用? – Mene 2011-05-05 13:33:17

+0

您應該使用'c.val()',而不是'car.val()'。變量'car'不存在。 – 2011-05-05 13:36:22

回答

1

你應該定義與小寫的VAR的選擇,因爲這樣:

var selection; 

爲什麼? Javascript是區分大小寫的,因此,敏感和敏感是不同的變量。

此外,你應該定義你的車變種,如:

var selection; 
c.change(function(){ 
    var car = $(this); //declare it 
    if(car.val()==='bmw'){ 
     selection = 'BMW'; 
    }else if(car.val()==='toyota'){ 
     selection = 'TOYOTA'; 
    } 
}); 
+0

請檢查我更新的帖子。 「選擇」和「car.val()」都是我的錯字。在我真正的代碼中,我使用「選擇」和「c.val()」 – Leem 2011-05-05 13:47:12

4

您正在查看car當您應該使用ccar沒有val()方法。

if(c.val()==='bmw'){ 

    selection = 'BMW'; 

} else if(c.val()==='toyota'){ 

    selection = 'TOYOTA'; 
} 

還要注意的是var Selection;不會是相同的變量作爲selection(小寫)。


更好的方法可能是:

c.change(function(){ 
    selection = c.find(":selected").text(); 
}); 

工作示例:http://jsfiddle.net/hunter/XespU/

+0

「選擇」是我的錯字,「car.val()」也是。我確實使用「選擇」和「c.val()」。我的觀點是如何在.change()函數外獲取更新值。你的例子不回答我的問題......因爲你在jQuery change()函數中提醒(選擇)。 – Leem 2011-05-05 13:43:05

+0

一旦'change'事件觸發,'selection'將被設置爲(當前事件的範圍之外)''car'的當前選定值。 – hunter 2011-05-05 13:50:38

+0

查看更新的jsfiddle:http://jsfiddle.net/hunter/XespU/按預期工作 – hunter 2011-05-05 13:52:41

相關問題