按值设置select选项“select”

我有一个select字段,其中有一些选项。 现在我需要用jQueryselect其中的一个options 。 但是当我只知道必须select的optionvalue时,我该怎么做呢?

我有以下的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);