2011-02-17 76 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并为每个选择创建独特的功能。