按值设置select选项“select”
我有一个select
字段,其中有一些选项。 现在我需要用jQueryselect其中的一个options
。 但是当我只知道必须select的option
的value
时,我该怎么做呢?
我有以下的HTML:
<div class="id_100"> <select> <option value="val1">Val 1</option> <option value="val2">Val 2</option> <option value="val3">Val 3</option> </select> </div>
我需要select值为val2
的选项。 如何才能做到这一点?
这是一个演示页面: http : //jsfiddle.net/9Stxb/
有一个更简单的方法,不需要你进入选项标签:
$("div.id_100 select").val("val2");
看看这个jQuery方法 。
要select值为“val2”的选项:
$('.id_100 option[value=val2]').attr('selected','selected');
select值后使用change()
事件。 从文档:
如果在没有改变内容的情况下字段失去焦点,则不触发事件。 要手动触发事件,请使用不带参数的
.change()
:
$("#select_id").val("val2").change();
更多信息在.change() 。
首先取消全选,然后筛选可选选项:
$('.id_100 option') .removeAttr('selected') .filter('[value=val1]') .attr('selected', true)
<select name="contribution_status_id" id="contribution_status_id" class="form-select"> <option value="1">Completed</option> <option value="2">Pending</option> <option value="3">Cancelled</option> <option value="4">Failed</option> <option value="5">In Progress</option> <option value="6">Overdue</option> <option value="7">Refunded</option>
通过值设置为挂起状态
$('#contribution_status_id').val("2");
对我来说,下面的工作
$("div.id_100").val("val2").change();
我认为最简单的方法是select设置val(),但是您可以检查以下内容。 请参阅如何在jQuery中处理select和option标记? 关于选项的更多细节。
$('div.id_100 option[value="val2"]').prop("selected", true); $('id_100').val('val2');
未优化,但以下逻辑在某些情况下也是有用的。
$('.id_100 option').each(function() { if($(this).val() == 'val2') { $(this).prop("selected", true); } });
您可以通过使用属性select器[attributename=optionalvalue]
来select任何属性及其值,因此您可以select该选项并设置所选属性。
$("div.id_100 > select > option[value=" + value + "]").prop("selected",true);
value
是您希望select的价值。
如果您需要删除任何之前选定的值,如果多次使用,则需要稍微更改,以便首先删除选定的属性
$("div.id_100 option:selected").prop("selected",false); $("div.id_100 option[value=" + value + "]") .prop("selected",true);
最简单的方法是:
HTML
<select name="dept"> <option value="">Which department does this doctor belong to?</option> <option value="1">Orthopaedics</option> <option value="2">Pathology</option> <option value="3">ENT</option> </select>
jQuery的
$('select[name="dept"]').val('3');
输出:这将激活ENT 。
使用:
$("div.id_100 > select > option[value=" + value + "]").attr("selected",true);
这对我有用。 我使用这个代码来parsing一个fancybox更新表单中的值,我的完整源代码app.js是:
jQuery(".fancybox-btn-upd").click(function(){ var ebid = jQuery(this).val(); jQuery.ajax({ type: "POST", url: js_base_url+"manajemen_cms/get_ebook_data", data: {ebookid:ebid}, success: function(transport){ var re = jQuery.parseJSON(transport); jQuery("#upd-kategori option[value="+re['kategori']+"]").attr('selected',true); document.getElementById("upd-nama").setAttribute('value',re['judul']); document.getElementById("upd-penerbit").setAttribute('value',re['penerbit']); document.getElementById("upd-tahun").setAttribute('value',re['terbit']); document.getElementById("upd-halaman").setAttribute('value',re['halaman']); document.getElementById("upd-bahasa").setAttribute('value',re['bahasa']); var content = jQuery("#fancybox-form-upd").html(); jQuery.fancybox({ type: 'ajax', prevEffect: 'none', nextEffect: 'none', closeBtn: true, content: content, helpers: { title: { type: 'inside' } } }); } }); });
而我的PHP代码是:
function get_ebook_data() { $ebkid = $this->input->post('ebookid'); $rs = $this->mod_manajemen->get_ebook_detail($ebkid); $hasil['id'] = $ebkid; foreach ($rs as $row) { $hasil['judul'] = $row->ebook_judul; $hasil['kategori'] = $row->ebook_cat_id; $hasil['penerbit'] = $row->ebook_penerbit; $hasil['terbit'] = $row->ebook_terbit; $hasil['halaman'] = $row->ebook_halaman; $hasil['bahasa'] = $row->ebook_bahasa; $hasil['format'] = $row->ebook_format; } $this->output->set_output(json_encode($hasil)); }
设置select值之后使用change()
更好。
$("div.id_100 select").val("val2").change();
通过这样做,代码将接近更改用户select,解释包括在JS小提琴 :
JS小提琴
var opt = new Option(name, id); $("#selectboxName").append(opt); opt.setAttribute("selected","selected");
.attr()有时不适用于较老的jQuery版本,但可以使用.prop() :
$('select#ddlCountry option').each(function () { if ($(this).text().toLowerCase() == co.toLowerCase()) { $(this).prop('selected','selected'); return; } });
这确实适用于select控制 :
$('select#ddlCountry option').each(function () { if ($(this).text().toLowerCase() == co.toLowerCase()) { this.selected = true; return; } });
只要把这个代码:
$("#Controls_ID").val(value);