2015-06-24 14 views
6

Chọn onchange hoạt động cho Chrome và Opera nhưng nó không hoạt động cho Firefox. Bạn có phiền không? Tôi nên làm gì để sửa nó cho tất cả các trình duyệt?onchange doesnt làm việc cho 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>

Trả lời

0

Bạn không bao giờ loại bỏ các thuộc tính selected trên thẻ option của bạn. Vì vậy, sau khi sử dụng tập lệnh, mã html của bạn trông giống như:

<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 không biết tùy chọn nào để chọn.

Cố gắng sử dụng hàm val() thay vì đặt thuộc tính selected.

[jQuery.val] séc, hoặc lựa chọn, tất cả các nút radio, hộp kiểm tra, và chọn tùy chọn phù hợp với các thiết lập các giá trị.

Với chức năng val(), nó hoạt động tốt.

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

Cảm ơn trả lời của bạn nhưng Nó không còn làm việc cho Firefox R3tep .. –

+0

Tôi sử dụng scri này pt trên Firfox và nó hoạt động. Bạn có thông báo lỗi nào không? – R3tep

+0

Tôi không nhận được bất kỳ thông báo lỗi .. Nó hoạt động cho 2 hoặc 3 thay đổi nhưng nhiều hơn nó không hoạt động. –

0

Cố gắng đưa mã của bạn trong javascript ví dụ:

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

Tôi không có vấn đề đặc biệt này, nhưng trong một số trường hợp mà tôi đã chức năng gặp khó khăn tiếp cận này giải quyết nó cho tôi. Tôi hi vọng cái này giúp được.

EDIT: Ngoài ra một đề nghị thay vì:

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

Tôi sẽ sử dụng:

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

Giữ kịch bản chức năng của bạn trong head khác nó sẽ cho lỗi 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> 
Các vấn đề liên quan