2011-02-17 70 views
0

我使用jQuery的變化而變化的另一個選擇失值下,每當用戶改變了一個月(使得顯示的天數右)。這除了火狐在所有瀏覽器的偉大工程:(jQuery的.change()在Firefox

我只想說的代碼是一個很大的這樣

$(document).ready(function() { 

var leap; 

$('.dob').change(function() { 

var y = $('#ryear option:selected').html(); /* The year selected */ 
var s = $('#rmonth option:selected').html(); /* The month selected */ 

}); 


}); 

然後我改變與變量值的數據記在心裏。 有3個選擇用。 DOB,所以它有點像這樣

<select class="dob" id="rday"> 
    <option id="01">01</option> 
    .... 
</select> 
<select class="dob" id="rmonth"> 
    <option id="1876">Jan</option> 
    .... 
</select> 
<select class="dob" id="ryear"> 
    <option id="1876">1876</option> 
    .... 
</select> 

在Firefox時,我選擇了每月或每年選擇下拉菜單,以及,下拉(天心不是價值真的腳本,以便它不是影響選中)閃爍並出現,然後立即消失rs在Firefox上單擊。

任何想法,爲什麼這個腳本是這樣做?

+1

這些下拉選項 - 可在「ID」屬性,真正的「價值」屬性? – 2011-02-17 21:13:27

+0

是否有其他可能干擾的事件?一般來說,onchange事件不會觸發,直到該領域失去焦點,所以您的更改功能可能不會出錯。你有任何onfocus事件,或者你是否在任何地方調用.blur()? – 2011-02-17 21:17:24

回答

0

我相信這是做數據類型,而不是var y = $('#ryear option:selected').html();

試試這個 var y = $('#ryear option:selected').val(); ||
var y = $('#ryear option:selected').attr('id'); ||
parseInt(y);

1

ids無法以數字開頭。

IDS必須是唯一的標識符。

0

我建議第一重寫代碼是符合標準的,這意味着與值替換的ID,即<option value="1876">

此外,當(順便說一句的ID,如指出的那樣,不能以數字http://www.w3schools.com/tags/att_standard_id.asp開始)你得到的價值使用.val(),所以

var y = $('#ryear option:selected').val(); 

隨着這些補丁看,如果你仍然得到問題。

此外,它發生,我認爲,如果在另一個選擇框,其中也有同樣的選擇處理您的選擇移交功能「力量」的價值選擇,有可能是某種形式的干擾。至少爲了測試目的,我會建議爲每個選擇分配唯一的ID併爲每個選擇創建獨特的功能。