我有一个PHP文件,可以从数据库中获取汽车品牌行,并将其作为"<option value=\"$brand\">" . $brand . "</option>";
回显,并将它们放入预先编写的<select>
标记中。
我的问题是,选择框中显示的第一个项目未向前传递其值。
此事件更改了选择框的值
$('select[name=model]').on('change', function() {
selectedModel = $("#select-model").val()
});
<option>
- 标记由brands.php
while ($row = mysqli_fetch_array($result)) {
$brand = $row['brand'];
echo "<option value=\"$brand\">" . $brand . "</option>";
}
这个功能取代了这些品牌:
function fetchBrands() {
$.ajax({
type: "POST",
url: "script/rent/brands.php",
data: {dateFrom: selectedDateFrom,
dateTo: selectedDateTo,
destination: selectedDestination},
success: function(data) {
$("#select-brand").html(data);
}
});
}
由于数据已发布到#select-brand
.html()
,因此无法为选择框设置默认值,因为它会被覆盖。附加选项将导致重复等因为fetchBrands()
取决于之前的一组单选按钮和选择框。
答案 0 :(得分:1)
我现在建议的是,在您的成功函数中,添加一些代码来获取select标记中的第一个元素,更新selectedBrand
,然后触发附加的代码改变事件。
如果您重构代码以便添加对处理程序代码的引用,这将使其更容易。
$('select[name=model]').on('change', someFunction());
function someFunction(){
selectedModel = $("#select-model").val()
}
function fetchBrands() {
$.ajax({
type: "POST",
url: "script/rent/brands.php",
data: {dateFrom: selectedDateFrom,
dateTo: selectedDateTo,
destination: selectedDestination},
success: function(data) {
$("#select-brand").html(data);
$("#select-brand").val($("#select-brand option:first").val());
someFunction();
}
});
}
要在页面呈现时自动选择<select>...</select>
元素,您需要将属性selected="selected"
添加到要选择的<option />
。
或者,添加一个用于设置所选品牌的文档加载的挂钩。
或者,第一个选项是这样的:
<option disabled="disabled" selected="selected">Choose a Brand</option>