我正在开发一个网站的应用程序,我想知道是否有办法在下拉列表中自动设置一个值,以便根据MySQL数据库中的值自动选择?我确信有,但我可以决定从哪里开始。例如,如果一个人在网站上有一个存储他们的姓名,地址等的个人资料,并且他们去更新它,我希望下拉列表自动设置他们最初存储在数据库中的任何内容,以便自动选择。
我正在尝试这个:
<script type="text/javascript">
$("#state option[value='CA']").attr("selected", "selected");
</script>
<select id="state" name="state">
<option value="">Select One</option>
<option value="AK">Alaska</option>
<option value="AL">Alabama</option>
<option value="AR">Arkansas</option>
<option value="AZ">Arizona</option>
<option value="CA">California</option>
Etc….
但我似乎无法让它发挥作用。一旦我开始工作,我想将其更改为:
$("#state option[value='<?=$state?>']").attr("selected", "selected");
有什么建议吗? jQuery甚至是在这里使用的合适工具,还是有更好的替代方案?
谢谢!
答案 0 :(得分:4)
您必须使用文档加载事件,因为执行脚本时尚未创建选择列表:
<script type="text/javascript">
$(function() {
$("#state option[value='CA']").attr("selected", "selected");
});
</script>
<select id="state" name="state">
<option value="">Select One</option>
<option value="AK">Alaska</option>
<option value="AL">Alabama</option>
<option value="AR">Arkansas</option>
<option value="AZ">Arizona</option>
<option value="CA">California</option>
jQuery甚至是在这里使用的合适工具,还是有更好的选择?
imho它是正确的工具,因为与每行的服务器端if
语句相比,它使视图更清晰。
答案 1 :(得分:1)
将它包装在文档准备就绪,它应该可以正常工作
$(function(){
$("#state option[value='CA']").attr("selected", "selected");
});
答案 2 :(得分:0)
使用.val()
更短,在DOM准备就绪就足够了 - 不需要等待window.load:
$(document).ready(function() {
$('#state').val('<?=$state?>');
});