我创建了这个脚本,但我不知道为什么第二个选择框没有显示...
也许我的ASP错了?
外观:
HERE是演示页
这是剧本:
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<%
strConnection ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("database/banco.mdb") &";"
set objConn = Server.CreateObject("ADODB.Connection")
objConn.open strConnection
set rs_lojas = Server.Createobject("ADODB.RecordSet")
rs_lojas.Open "select * FROM ondeencontrar WHERE estado = '"& request("estado")&"'", objConn
If estado = "" Then
estado = trim(Request("estado"))
session("estado") = true
End if
If cidade = "" Then
modelo = trim(Request("cidade"))
session("cidade") = true
End if
%>
<% set rs_estado = Server.Createobject("ADODB.RecordSet")
rs_estado.Open "SELECT distinct estado FROM ondeencontrar", objConn
%>
<script>
$("#first-choice").change(function() {
$("#second-choice").load("estados.asp?estado=" + $("#first-choice").val());
$("#second-choice").show("slow");
});
$("#second-choice").change(function() {
alter("TESTE");
});
</script>
<select id="first-choice">
<option selected value="">Escolha um Estado</option>
<%do while not rs_estado.eof%>
<option value="<%=rs_estado("estado")%>"><%=rs_estado("estado")%></option>
<% rs_estado.MoveNext
if rs_estado.EOF then Exit do %>
<% Loop %>
</select>
<br /> <br />
<%
If not trim(Request("estado")) = "" then
set rs_cidade = Server.Createobject("ADODB.RecordSet")
rs_cidade.Open "SELECT distinct cidade, estado FROM ondeencontrar where estado = '"&estado&"'", objConn
%>
<select id="second-choice" style="display: none;">
<option selected="<%=cidade%>"><%=cidade%></option>
<% do while not rs_cidade.eof %>
<option value="ondeencontrar.asp?estado=<%=request("estado")%>&cidade=<%=rs_cidade("cidade")%>"><%=rs_cidade("cidade")%></option>
<%
rs_cidade.MoveNext
if rs_cidade.EOF then Exit do
%>
<% Loop %>
</select>
<%End If%>
答案 0 :(得分:1)
你的jQuery选择器需要在document.ready中,或者在body标签结束之前最后移动到下面。您正在选择尚未渲染的元素。
像这样:
$(function(){
$("#first-choice").change(function() {
$("#second-choice").load("estados.asp?estado=" + $("#first-choice").val());
$("#second-choice").show("slow");
});
$("#second-choice").change(function() {
alter("TESTE");
});
});
此URL(http://fakedc.com/sites/luilui/teste.asp)还需要返回JSON或XML对象,以便将其加载到第二个选择项中。它目前没有。
由于您正在执行AJAX请求,因此该行也不起作用。
If not trim(Request("estado")) = "" then
第二个选择元素取决于第一个选择元素的选项选择,所以我会将第二个查询移动到一个AJAX调用并填充第二个选择。
答案 1 :(得分:0)
第二个选择甚至没有在页面中呈现,因为它没有通过If not trim(Request("estado")) = "" then
条件。
答案 2 :(得分:0)
来自萤火虫:
"NetworkError: 404 Not Found - http://fakedc.com/sites/luilui/jquery-1.7.1.min.js"
此外:
$ is not defined
您可能想要检查jQuery include的源路径。