Saya telah memilih kontrol, dan variabel javascript saya telah string teks.
Dengan menggunakan jQuery yang saya inginkan untuk mengatur elemen yang dipilih dari pilih kontrol untuk item dengan teks deskripsi saya (sebagai lawan untuk nilai, yang saya don't memiliki).
Aku tahu setting dengan nilai yang cukup sepele. misalnya
$("#my-select").val(myVal);
Tapi aku'm sedikit bingung untuk melakukan itu melalui teks deskripsi. Saya kira harus ada cara untuk mendapatkan nilai dari teks deskripsi, tapi otak saya terlalu jumat sore-ed untuk dapat bekerja keluar.
var text1 = 'Two';
$("select option").filter(function() {
//may want to use $.trim in here
return $(this).text() == text1;
}).prop('selected', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="0">One</option>
<option value="1">Two</option>
</select>
var text1 = 'Two';
$("select option").filter(function() {
//may want to use $.trim in here
return $(this).text() == text1;
}).attr('selected', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<select>
<option value="0">One</option>
<option value="1">Two</option>
</select>
Perhatikan bahwa meskipun pendekatan ini akan bekerja pada versi yang di atas 1.6 tetapi kurang dari 1.9, telah ditinggalkan sejak 1.6. Itu tidak bekerja di jQuery 1.9+.
val()
harus menangani kedua kasus.
$('select').val('1'); // selects "Two"
$('select').val('Two'); // also selects "Two"
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<select>
<option value="0">One</option>
<option value="1">Two</option>
</select>
Coba ini...untuk memilih opsi dengan teks myText
$("#my-Select option[text=" + myText +"]").attr("selected","selected");
Saya melakukannya dengan cara ini (jQuery 1.9.1)
$("#my-select").val("Dutch").change();
Catatan: don't lupa ubah(), saya telah mencari untuk waktu yang lama karena itu :)
Untuk menghindari semua versi jQuery komplikasi, saya benar-benar merekomendasikan menggunakan salah satu dari ini benar-benar sederhana fungsi javascript...
function setSelectByValue(eID,val)
{ //Loop through sequentially//
var ele=document.getElementById(eID);
for(var ii=0; ii<ele.length; ii++)
if(ele.options[ii].value==val) { //Found!
ele.options[ii].selected=true;
return true;
}
return false;
}
function setSelectByText(eID,text)
{ //Loop through sequentially//
var ele=document.getElementById(eID);
for(var ii=0; ii<ele.length; ii++)
if(ele.options[ii].text==text) { //Found!
ele.options[ii].selected=true;
return true;
}
return false;
}
Saya tahu ini adalah sebuah posting lama, tapi aku tidak't mendapatkan untuk memilih teks menggunakan jQuery 1.10.3 dan solusi di atas. Akhirnya saya menggunakan kode berikut (variasi spoulson's solusi):
var textToSelect = "Hello World";
$("#myDropDown option").each(function (a, b) {
if ($(this).html() == textToSelect ) $(this).attr("selected", "selected");
});
Berharap itu membantu seseorang.
Baris ini bekerja:
$("#myDropDown option:contains(myText)").attr('selected', true);
Cara termudah dengan 1.7+ adalah:
$("#myDropDown option:text=" + myText +"").attr("selected", "selected");
1.9+
$("#myDropDown option:text=" + myText +"").prop("selected", "selected");
Diuji dan bekerja.
lihatlah jquery selectedbox plugin
selectOptions(value[, clear]):
Pilih opsi dengan nilai, menggunakan string sebagai parameter $("#myselect2").pilih pilihan("Nilai 1");
, atau ekspresi reguler $("#myselect2").pilih pilihan(/^val/i);
.
Anda juga dapat jelas sudah memilih pilihan: $("#myselect2").pilih pilihan("2", true);
Hanya di samping catatan. Saya dipilih nilai itu tidak diatur. Dan aku telah mencari di seluruh net. Sebenarnya saya harus memilih nilai setelah panggilan kembali dari layanan web, karena saya mendapatkan data dari itu.
$("#SelectMonth option[value=" + DataFromWebService + "]").attr('selected', 'selected');
$("#SelectMonth").selectmenu('refresh', true);
Jadi refresh dari pemilih itu adalah satu-satunya hal yang saya hilang.
Saya menemukan bahwa dengan menggunakan y
anda akan berakhir dengan beberapa opsi yang dipilih ketika anda didn't ingin - solusi adalah dengan menggunakan prop
:
$("#myDropDown pilihan:text=" + myText +",").prop("yang dipilih", "dipilih");
Saya punya masalah dengan contoh di atas, dan masalah ini disebabkan oleh fakta bahwa saya pilih kotak nilai-nilai yang telah diisikan dengan fixed string dengan panjang 6 karakter, tetapi parameter yang dilewatkan di wasn't tetap panjang.
Saya memiliki sebuah rpad fungsi yang akan pad kanan sebuah string dengan panjang yang ditentukan, dan dengan karakter yang ditentukan. Jadi, setelah padding parameter kerjanya.
$('#wsWorkCenter').val(rpad(wsWorkCenter, 6, ' '));
function rpad(pStr, pLen, pPadStr) {
if (pPadStr == '') {pPadStr == ' '};
while (pStr.length < pLen)
pStr = pStr + pPadStr;
return pStr;
}
$('#theYear').on('change', function () {
FY = $(this).find('option:selected').text();
$('#theFolders').each(function () {
$('option:not(:contains(' + FY + '))', this).hide();
});
$('#theFolders').val(0);
});
$('#theYear').on('mousedown', function () {
$('#theFolders option').show().find('option:contains("Select")', this).attr('selected', 'selected');
});
Heres pilihan yang mudah. Hanya mengatur opsi daftar yang kemudian mengatur teks yang dipilih sebagai nilai:
$("#ddlScheduleFrequency option").selected(text("Select One..."));
Ini jawaban yang diterima tidak tampak benar, sementara .val('newValue') adalah benar untuk fungsi, mencoba untuk mengambil pilih oleh namanya tidak bekerja untuk saya, saya harus menggunakan id dan classname untuk mendapatkan elemen saya