2013-03-04 7 views
5

में काम नहीं कर रहा है, मैं विकल्प विकल्प लाने के बाद jquery द्वारा चुने गए विकल्प को स्वतः चुनने का प्रयास कर रहा हूं। हालांकि यह क्रोम में काम नहीं कर रहा है। यह फ़ायरफ़ॉक्स और आईई 9 में काम कर रहा है। ऐसा क्यों है? फंक्शन भरना वह है जो मूल्यों में भर जाता है। (समारोह रेस, केवल समारोह को भरने के द्वारा भरा मान रीसेट करता है और इस प्रश्न के लिए महत्वपूर्ण नहीं है)jquery विकल्प chrome

function fill(thisValue) { 
    $('#inputString').val(thisValue); 
    $.post("get.php?op=category", {queryString: ""+thisValue+""}, function(data){ 
      if(data.length >0) { 
       $("#mymenu option[value='"+data+"']").attr('selected', 'selected'); 
       $('#mymenu').attr("disabled","disabled"); 
      } 
     }); 
    $.post("get.php?op=name", {queryString: ""+thisValue+""}, function(data){ 
      if(data.length >0) { 
       $('#nameString').val(data); 
       $('#nameString').attr("disabled","disabled"); 
      } 
     }); 
    $.post("get.php?op=author", {queryString: ""+thisValue+""}, function(data){ 
      if(data.length >0) { 
       $('#authorString').val(data); 
       $('#authorString').attr("disabled","disabled");     
      } 
     }); 
    $.post("get.php?op=publisher", {queryString: ""+thisValue+""}, function(data){ 
      if(data.length >0) { 
       $('#publisherString').val(data); 
       $('#publisherString').attr("disabled","disabled"); 
      } 
     }); 


    setTimeout("$('#suggestions').hide();", 200); 
} 

function res(inputString) { 
$('#publisherString').attr("disabled", false); 
$('#publisherString').val(''); 
$('#nameString').attr("disabled",false); 
$('#nameString').val(''); 
$('#authorString').attr("disabled",false); 
$('#authorString').val(''); 
$('#mymenu').attr("disabled",false); 
$('#mymenu option').attr('selected', false); 
} 
+0

'attr ('चयनित', 'चयनित') 'to' prop (' चयनित ', सत्य)' –

उत्तर

9

आप val() उपयोग कर सकते हैं एक select तत्व का मान सेट करने के लिए।

बदलें

$("#mymenu option[value='"+data+"']").attr('selected', 'selected'); 

को
$("#mymenu").val(data); 

Demo Fiddle

एक अन्य समाधान prop() उपयोग करने के लिए है। attr() विधि का उपयोग तत्व के गुण मान को सेट करने के लिए किया जाता है ताकि संपत्ति सेट न किया जा सके।

$('#mymenu option[value="5"]').prop('selected', true) 

आप attr vs prop के बारे में अधिक पढ़ सकते हैं, साथ ही jQuery 1.6 release note

Demo Fiddle

0

आप बयान लिखने में कोई गलती के साथ डेटा का उपयोग करते हैं नीचे ऐसा लगता है कि वैल काम नहीं कर रहा। मुझे नोटिस करने के लिए थोड़ी देर लग गई।

$("#mymenu").val(data); 
0

यहां कुछ ऐसा है जो मैंने आपके द्वारा विकल्प टैग में सेट किए गए नाम से संबंधित देखा है। मैं एक उदाहरण के रूप में अपने कोड का उपयोग करूंगा। आप देखते हैं कि यह कहां नीला और काला कहता है?

<option value="b">Blue</option> 
<option value="k">Black</option> 

मान लें कि ब्लू वर्तमान में चुना गया है। यदि आप अपने कीबोर्ड पर अक्षर 'बी' दबाते हैं (केस संवेदनशीलता कोई फर्क नहीं पड़ता) इससे कोई फर्क नहीं पड़ता कि इससे कोई फर्क नहीं पड़ता। यह सच है, भले ही आप इस तरह के रूप में एक onkeydown घटना है कि मान सेट माना जाता है है,:

$(function() { 
    // Set the value on key down 
    $("select[id=stoneColor1]").on("keydown", function(e) { 

     var key = String.fromCharCode(e.keyCode); 
     for (var i=0; i<stoneColorOptions.length; i++) { 
      if (stoneColorOptions[i].keyPress == key) { 
       $("#stoneColor1").val(key.toLowerCase()); 
       break; 
      } 
     } 
    }); 
}); 

याद मैंने कहा उपरोक्त कोड कार्य नहीं करेगा अगर मैं

<option value="b">Blue</option> 
<option value="k">Black</option> 

है हालांकि, यह काम करता है जब मैं

<option value="b">(B) Blue</option> 
<option value="k">(K) Black</option> 

है तो हां, कहानी का नैतिक: ऐसा लगता है आप को भी ध्यान में अपने विकल्प नाम के पहले अक्षर को लेना है।

+0

'को बदलने का प्रयास करें यह एक दिलचस्प अवलोकन है, लेकिन मुझे नहीं लगता कि इसका मूल के साथ कुछ भी करना है सवाल। – cpburnz

संबंधित मुद्दे