我已经创建了这个脚本,但我不知道为什么第二个选择框不显示...
也许我的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%>
发布于 2012-04-04 09:21:23
在jQuery标记结束之前,您的主体选择器需要位于document.ready内部,或者被移到最下面。您正在选择尚未呈现的元素。
如下所示:
$(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
第二个select元素依赖于第一个select元素的选项选择,所以我将把第二个查询移到一个AJAX调用中,并填充第二个select。
发布于 2012-04-04 08:50:45
第二个select甚至不会在页面中呈现,因为它没有传递If not trim(Request("estado")) = "" then
条件。
发布于 2012-04-04 08:55:13
来自Firebug:
"NetworkError: 404 Not Found - http://fakedc.com/sites/luilui/jquery-1.7.1.min.js"
另外:
$ is not defined
您可能需要检查jQuery include的源路径。
https://stackoverflow.com/questions/10003495
复制相似问题