2013-07-26 24 views
5

açılan menüden değerleri seçerek, eğer seçilen değerler belirli bir değere eşitse, aşağı açılır menüden okumaya geçmek istiyorum, bunu nasıl yapabilirim?javascript değerlerini ayarlamak için aşağı açılır değerde

HTML:

<select id="s_id"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option></select> 

Senaryo:

$(document).ready(function() { 
    $("#s_id").change(function() { 
    var x = $(this).val(); 
    //alert("something's changed"); 
    alert($(this).val()); 
    if (x === opel) { 
     alert("iff only....."); 
     $(this).attr("readOnly", "true"); 
    } 
    }); 
}); 

Fiddle: http://jsfiddle.net/L4reds/xKQUd/2/ Sen "opel" bir dizeye x karşılaştırmak gerekiyor ve niteliğini disabled kullanabilirsiniz

+2

İlk olarak, değer koşuluna göre tırnak eklemeniz gerekir: 'if (x ===" opel ") ...'. İkincisi ve daha da önemlisi, 'select' elemanları' readonly' yapamaz. Devre dışı bırakılabilirler, ancak değerleri form verisiyle birlikte gönderilmez. –

+1

"Salt okunur" ile, bu değer seçilemez mi? –

+0

Satiniz 'if (x == opel) {', 'opel' degeri _undefined_. Muhtemelen _String_ ile karşılaştırmak istediniz; 'if (x == 'opel') {' –

cevap

10

, burada keman bakın : http://jsfiddle.net/xKQUd/3/

netleştirmek için: select elemanları readOnly için ayarlanamaz, sunucu sorununa göndermiyor kaçınmak için Form gönderilmesini gönderilecektir engelli değerine eşit gizli girişini ayarlamak

disabled özellik kullanmak gerekir bunun yerine, burada bu keman bakın: http://jsfiddle.net/xKQUd/25/

+2

Daha büyük bir sorun var, ancak 'select' öğesi 'readonly' yapamaz. –

+0

Bu nedenle, devre dışı bırakılan özniteliği – verbanicm

+2

kullanmayı söyledim Ama bu, seçilen değerin hiçbir zaman sunucuya gönderilmeyeceği anlamına gelir, bu OP'nin gerektirdiği şeylere karşı olabilir. 'Engelli 'uygulanabilir bir alternatif değildir. –

1

Select attr ReadOnly yok - bunun yerine olabilir disabled böylece kod:

$(document).ready(function() { 
    $("#s_id").change(function() { 
     var x = $(this).val(); 
     //alert("something's changed"); 
     alert($(this).val()); 
     alert("x=======" +x); 
     if (x == "opel") { 
      alert("iff"); 
      // $(this).attr("readOnly", "true"); 
      $(this).attr('disabled',true); 
     } 
    }); 
}); 

btw open değişken değildir, ama değer, yani tırnak "opel" ve keman olması gerekir: http://jsfiddle.net/xKQUd/5/

0

if (x == 'opel') { 
     alert("iff"); 
     $(this).attr("disabled", "true"); 
    } 

FIDDLE Demo

0

bu deneyin deneyin

if (x == "opel") { 

      $(this).attr("disabled", "disabled"); 
     } 
2

Kodunuzda opel'u variable olarak kullandınız. ama variable değil, bir string. Yani bir dize olarak almanız gerekir (tek veya çift tırnak içinde).

Try this jsfiddle

veya değişken var opel = "opel"; almak

$(document).ready(function() { 
    $("#s_id").change(function() { 
     var x = $(this).val();    
     alert($(this).val()); 
     alert("x=======" +x); 
     if (x == "opel") { 
      alert("iff"); 
      $(this).attr("disabled", "disabled"); 
     } 
    }); 
}); 
.

Try jsfiddle

1

Select elemanları readonly ayarlanamaz, ancak bunun yerine disabled olabilir. Ancak bu durumda, değeri form ile gönderilmeyecektir.

Burada iki seçeneğiniz var.Sadece seçilmiş bir kullanılabilir bırakarak

$(document).ready(function() { 
    $("#s_id").on("change", function() { 
     if ($(this).val() === "opel") { 
      $("#myHiddenField").val($(this).val()); 
      $(this).attr("disabled", "disabled"); 
     } 
    }); 
}); 

diğer biridir select gelen diğer bütün seçenekleri kaldırmak için:

biri seçilmelidir değere sahip bir hidden input ayarlayın ve ardından select devre dışı bırakmaktır:

$(document).ready(function() { 
    $("#s_id").on("change", function() { 
    if ($(this).val() === "opel") { 
     $(this).children("option").each(function() { 
      if (this.value != "opel") 
       this.remove(); 
     }); 
    } 
    }); 
}); 

Şimdi size kalmış. Kod Aşağıda

0

Dene:

<select id="s_id"> 
<option value="volvo">Volvo</option> 
<option value="saab">Saab</option> 
<option value="opel">Opel</option> 
<option value="audi">Audi</option> 
</select> 

jQuery Kodu: Burada

$(document).ready(function() { 
$("#s_id").change(function() { 
var x = $(this).val();  
if (x == 'opel') { 
    $(this).attr('disabled','disabled'); 
} 
}); 
}); 

http://jsfiddle.net/Ea6NN/

0

Eğer http://jsfiddle.net/SteveRobertson/xKQUd/24/

 $(document).ready(function() { 
      y=1; 
      $("#s_id").change(function() { 
      var x = $(this).val(); 
    //alert("something's changed"); 


      if (x == "opel" && x!=y) {   
       y=x; 
       $("#s_id").prop("disabled", true).change();    
    } 
}); 

} vardır);

İlgili konular