2015-06-24 45 views
6

选择onchange适用于Chrome和Opera,但它不适用于Firefox。你介意帮我吗?我应该如何解决所有浏览器的问题?onchange不适用于firefox

var tehlikeliNace = ["01.11.07", "01.11.12"]; 
 
var aztehlikeliNace = ["01.30.04", "01.63.05"]; 
 
var coktehlikeliNace = ["01.61.04", "01.61.06"]; 
 

 
function naceKoduDegisti() { 
 

 

 
    if (jQuery.inArray($("#nace_kod").val(), aztehlikeliNace) >= 0) { 
 
    $("#tehlike_sinifi option[value='1']").attr('selected', 'selected'); 
 
    } 
 
    if (jQuery.inArray($("#nace_kod").val(), tehlikeliNace) >= 0) { 
 
    $("#tehlike_sinifi option[value='2']").attr('selected', 'selected'); 
 
    } 
 
    if (jQuery.inArray($("#nace_kod").val(), coktehlikeliNace) >= 0) { 
 
    $("#tehlike_sinifi option[value='3']").attr('selected', 'selected'); 
 
    } 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="nace_kod" onchange="naceKoduDegisti()"> 
 
    <option value="01.11.07">01.11.07</option> 
 
    <option value="01.30.04">01.30.04</option> 
 
    <option value="01.61.04">01.63.05</option> 
 
    <option value="01.11.12">01.13.18</option> 
 
    <option value="01.63.05">02.40.04</option> 
 
</select> 
 

 
<select id="tehlike_sinifi"> 
 
    <option value="1">"Az Tehlikeli"</option> 
 
    <option value="2">"Tehlikeli"</option> 
 
    <option value="3">"Çok Tehlikeli"</option> 
 
</select>

回答

0

你永远不会删除属性selectedoption标签。因此,在使用您的脚本后,您的html代码如下所示:

<select id="tehlike_sinifi"> 
    <option value="1" selected="selected">"Az Tehlikeli"</option>  
    <option value="2" selected="selected">"Tehlikeli"</option> 
    <option value="3" selected="selected">"Çok Tehlikeli"</option>  
</select> 

Firefox不知道要选择哪个选项。

尝试使用功能val()而不是设置属性selected

[jQuery.val]的检查,或选择的,所有的单选按钮,复选框,以及匹配的设定值的该选择选项。

功能val(),它工作正常。

if ($.inArray($("#nace_kod").val(), aztehlikeliNace) >= 0) { 
    $("#tehlike_sinifi").val(1); 
} 
if ($.inArray($("#nace_kod").val(), tehlikeliNace) >= 0) { 
    $("#tehlike_sinifi").val(2); 
} 
if ($.inArray($("#nace_kod").val(), coktehlikeliNace) >= 0) { 
    $("#tehlike_sinifi").val(3); 
} 

Demo

+0

感谢您的回复,但它不是还在工作的Firefox R3tep .. –

+0

我使用这个脚本对Firfox ptt,它的工作。你有没有任何错误信息? – R3tep

+0

我没有得到任何错误消息..它适用于2或3改变,但更多它does not工作。 –

0

尽量把你的代码在JavaScript例如:

$("#nace_kod").change(function() { 
    naceKoduDegisti(); 
}); 

我没有这方面的问题,但在某些情况下,我遇到了麻烦访问功能这解决了它为了我。我希望这有帮助。

编辑:也是另一种建议,而不是:

$("#tehlike_sinifi option[value='1']").attr('selected', 'selected'); 

我会用:

$("#tehlike_sinifi").val("1"); 
0

保持你的功能脚本head否则会给错误ReferenceError: naceKoduDegisti is not defined

DEMO

<head> 
.... 
<script type="text/javascript"> 
    var tehlikeliNace = ["01.11.07", "01.11.12"]; 
    var aztehlikeliNace = ["01.30.04", "01.63.05"]; 
    var coktehlikeliNace = ["01.61.04", "01.61.06"]; 
    function naceKoduDegisti() { 
     if (jQuery.inArray($("#nace_kod").val(), aztehlikeliNace) >= 0) { 
      $("#tehlike_sinifi option[value='1']").attr('selected', 'selected'); 
     } 
     if (jQuery.inArray($("#nace_kod").val(), tehlikeliNace) >= 0) { 
      $("#tehlike_sinifi option[value='2']").attr('selected', 'selected'); 
     } 
     if (jQuery.inArray($("#nace_kod").val(), coktehlikeliNace) >= 0) { 
      $("#tehlike_sinifi option[value='3']").attr('selected', 'selected'); 
     } 
    } 
</script> 
</head> 
相关问题