如何使用jquery设置动态下拉选择的值?
问题描述:
我有一个下拉列表,它是在页面加载时使用ajax动态生成的。 另一方面,我有一个PHP变量,其中包含默认选择的值。 但是,当Iam尝试这样做时,它并未选择该值。以下是代码:如何使用jquery设置动态下拉选择的值?
HTML & PHP
<h1>Venue: Edit</h1>
<a href="/venue"><< Back to Venue List</a>
<br />
<form method="post" id="venueEdit" action="<?php echo URL;?>venue/editSave/<?php echo $this->venue['id']; ?>">
<fieldset>
<p>
<label for="cvenue" class="main">Venue</label>
<input id="cvenue" class="required" type="text" name="venue" value="<?php echo $this->venue['name']; ?>" />
</p>
<p>
<label for="ccity" class="main">City</label>
<input id="ccity" class="required" type="text" name="city" value="<?php echo $this->venue['city']; ?>" />
</p>
<p>
<label for="ccountry" class="main">Country</label>
<select id="ccountry" class="required" name="country">
<option value="">-- Select Country --</option>
</select>
</p>
<p>
<label class="main"> </label><input type="submit" value="Save" />
</p>
</fieldset>
</form>
JS:
function populateCountryDropDown(url){
$.get(url, function(o) {
for(var i = 0; i < o.length; i++){
$('select[name="country"]').append('<option value="' + o[i].id + '">' + o[i].name + "</option>");
}
}, 'json');
}
$(document).ready(function(){
populateCountryDropDown('<?php echo URL; ?>' + 'country/xhrGetCountryList');
$('select[name="country"]').val('<?php echo $this->venue['countryid']; ?>');
$("#venueEdit").validate();
});
我试图提醒PHP的价值和它的确定,但如果我提醒选择选项的值,它总是空如那点它仍然填充下拉列表。我不知道如何解决这个问题。希望你们的帮助?谢谢。
答
您需要将您的代码设置为回调值,才能触发设置的值之后发送的AJAX呼叫由$.get()
返回。
function populateCountryDropDown(url){
$.get(url, function(o) {
for(var i = 0; i < o.length; i++){
$('select[name="country"]').append('<option value="' + o[i].id + '">' + o[i].name + "</option>");
}
$('select[name="country"]').val('<?php echo $this->venue['countryid']; ?>');
$("#venueEdit").validate();
}, 'json');
}
$(document).ready(function(){
populateCountryDropDown('<?php echo URL; ?>' + 'country/xhrGetCountryList');
});
答
这这里代码:
$('select[name="country"]').val('<?php echo $this->venue['countryid']; ?>');
尝试更改为:
$('select[name="country"]').val('<?php echo $this->venue["countryid"]; ?>'); // Double quotes around countryid vs the single quote.
+1
双引号对单引号对于OP在PHP中所做的操作没有任何影响。 – Amber 2012-04-05 04:52:32
+0
^^。完全没有区别。 – 2012-04-05 06:03:30
感谢的人这个工作。 – 2012-04-05 06:06:44