您好,
我收到了以下输入
<input type="text" class="input-text" value="South Yorkshire" placeholder=" county" name="calc_shipping_state" id="calc_shipping_state">
我需要更改选项下拉选项。问题是输入使用数据库进行验证,我无法访问HTML。所以我隐藏了输入并使用jQuery添加了一个select选项,以便将选择的选项写入输入。我不确定如何在选择中选择的选项中写入隐藏输入。
使用.change()
或.val()
?
这是添加选择的代码:
$('#calc_shipping_state_field').after("<p class='form-row form-row-wide' id='calc_shipping_state_field' id=''> <select name='' id='county_selected' class='' rel=''> <option value=''>Select a county…</option> <option value='BE'>Bedfordshire</option> <option selected='selected' value='BER'>Berkshire</option> <option value='BRI'>Bristol</option> <option value='BUCK'>Buckinghamshire</option> <option value='CA'>Cambridgeshire</option> <option value='CHES'>Cheshire</option> <option value='LN'>City of London</option> </select></p>");
我在伯克希尔&#39;添加了selected='selected'
。默认选项
<option selected='selected' value='BER'>Berkshire</option>
这是我尝试使用的代码.change()但是没有用。
$( "#county_selected" ).change(function() {
var county = $("select :selected").county(function () {
var txt = $(this).text();
}).get();
//add it to div
$('input.input-text').val('county');
});
我希望有人可以帮助我。
谢谢!
答案 0 :(得分:1)
您可以使用find()
获取所选选项,然后在其上调用.text()
。在更改功能中,this
指的是选择,因此无需重新选择。
$( "#county_selected" ).change(function() {
$('input.input-text').val($(this).find('option:selected').text());
});
上面的代码必须在添加select后运行。如果您愿意,可以委托父母或文档,并且在添加选择后不必运行:
$(document).on('change', '#county_selected', function(){
$('input.input-text').val($(this).find('option:selected').text());
});
答案 1 :(得分:1)
嗯,您可以使用JQuery replaceWith Method:
来完成此操作$( document ).ready(function() {
/*
* Make your new HTML ELEMENT
*/
var newHTMLelment = "<select name='calc_shipping_state'>";
newHTMLelment += "<option value='01'>01</option>";
newHTMLelment += "<option value='02'>02</option>";
newHTMLelment += "</select>";
/*
* Replace current HTML element with new one
*/
$( "#calc_shipping_state" ).replaceWith( newHTMLelment );
});