jQuery 建立 AJAX 下拉框表单的例子

最近在开发一个小东西的时候出现这么一个需求,根据 AJAX 请求的数据生成下拉框表单。

这个需求经常会出现,比如全球范围内地址的选择,全球所有国家的省份和城市是一堆不小的数据,而且表单还不一定会被使用。这时可以考虑先加载一个空表单,在用户点击的时候再用 AJAX 把数据加载进来;或者先加载所有国家的列表,然后根据用户选择的国家再加载对应的省份和城市数据。

再比如一些必须使用 AJAX 加载下拉框表单的地方。像 CDK 兑换,需要用户填写 CDK 之后再根据 CDK 适用的范围生成下拉框表单。

实现这个功能是比较简单的,但是我们要说的是如何更加高效的实现这个功能。

HTML 表单

在 AJAX 获取并生成数据之前,首先需要一个空的或者存在内容的 HTML 下拉框表单用来填充数据:

<select id="dropdown">
 <option value="">请选择...</option>
</select>

AJAX 获取数据

接下来我们可以开始使用 AJAX 获取数据了,在使用 jQuery 的情况下,AJAX 获取数据非常简单方便。

获取数据的时机可以是在用户点击表单的时候、用户设置其它表单的内容的时候或者其它时候。

$.ajax( {
 type: 'GET',
 url: AJAXurl,
 dataType: 'json',
 success: function( data ){
  build_dropdown( data, $( '#dropdown' ), '请选择...' );//填充表单
 }
} );

使用 AJAX 请求 AJAXurl 的地址之后将返回一个 JSON 对象,接下来我们需要解析这些数据,把他填充到下拉框表单里,这里使用了自定义方法 build_dropdown()。

填充表单

在上边用 ajax() 方法获取到数据之后,使用 build_dropdown() 方法填充了表单数据,这里我们就来创建这个方法:

//填充表单
var build_dropdown = function( data, element, defaultText ){
 element.empty().append( '<option value="">' + defaultText + '</option>' );
 if( data ){
  $.each( data, function( key, value ){
   element.append( '<option value="' + key + '">' + value + '</option>' );
  } );
 }
}
这个方法用三个参数,分别是表单数据(JSON 对象)、需要被填充数据的表单和默认空选项的文本。

到这里就可以完成一个 AJAX 获取数据并生成下拉框表单的过程了。

数据格式

AJAX 获取的表单数据为 JSON 对象,格式类似于:

{
 'USA'    : '美国',
 'China'  : '中国',
 'Japan'  : '日本',
 'Germany': '德国',
 'Britain': '英国',
 'France' : '法国',
 'Korea'  : '韩国'
}

可以使用 PHP 的 json_encode() 函数,把 PHP 数据变成我们需要的 JSON 对象数据:

echo json_encode( array(
 'USA'     => '美国',
 'China'   => '中国',
 'Japan'   => '日本',
 'Germany' => '德国',
 'Britain' => '英国',
 'France'  => '法国',
 'Korea'   => '韩国'
) );

时间: 2024-12-27 09:30:11

jQuery 建立 AJAX 下拉框表单的例子的相关文章

jQuery AJAX下拉框表单的实现例子

AJAX下拉框表单是在表单中绑定了改变事件了,当A改变时B的列表根据A条件进行查询返回并显示数据了,具体例子如下. 最近在开发一个小东西的时候出现这么一个需求,根据 AJAX 请求的数据生成下拉框表单.   这个需求经常会出现,比如全球范围内地址的选择,全球所有国家的省份和城市是一堆不小的数据,而且表单还不一定会被使用.这时可以考虑先加载一个空表单,在用户点击的时候再用 AJAX 把数据加载进来:或者先加载所有国家的列表,然后根据用户选择的国家再加载对应的省份和城市数据.   再比如一些必须使用

基于jQuery的select下拉框选择触发事件实例分析_jquery

本文实例讲述了基于jQuery的select下拉框选择触发事件实现方法.分享给大家供大家参考,具体如下: 我一直以来都认为,select 下拉框选择对选项 options 使用 onclick 注册事件即可,如下: <select> <option value="0" onclick="func(0)">选项一</option> <option value="1" onclick="func(1

用jQuery模拟select下拉框的简单示例代码

 本篇文章主要是对用jQuery模拟select下拉框的简单示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 很多时候,美工会觉得默认的select下拉框很难看(特别是右侧的下拉箭头按钮),他们通常喜欢用一个自定义的图标来代替这个按钮.这样就只能用 js + div 来模拟了,倒腾了一番,用jQuery模拟了下,当然网上这种文章也不少,只是懒得去看找  代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition

JQuery实现级联下拉框效果实例讲解_jquery

用JQuery和select来实现汽车厂商和汽车类型的联动,参考过程如下效果图:      逻辑分析图: html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xh

可输入文字查找ajax下拉框控件 ComBox的实现方法_jquery

GooFunc.js文件 //获取一个DIV的绝对坐标的功能函数,即使是非绝对定位,一样能获取到 function getElCoordinate(dom) { var t = dom.offsetTop; var l = dom.offsetLeft; dom=dom.offsetParent; while (dom) { t += dom.offsetTop; l += dom.offsetLeft; dom=dom.offsetParent; }; return { top: t, lef

用jQuery获取IE9下拉框默认值问题探讨

本文与大家详细探讨下用jQuery获取IE9下拉框默认值的问题,如果下拉框没有空默认值会怎么样等一系列问题,感兴趣的朋友可以参考下哈,希望对大家有所帮助   在IE 9.0.8112.16421 下,如果下拉框没有空默认值, 在不对它的option设置select属性情况下,用jquery的 $("#id").find("option:selected").val();方法 将无法取到他的默认值.而在FireFox.chrome.其他IE版本包括IE9的其他小版本下

jQuery操作select下拉框的text值和value值的方法_jquery

1.jquery获取当前选中select的text值 var checkText=$("#slc1").find("option:selected").text(); 2.jquery获取当前选中select的value值 var checkValue=$("#slc1").val(); 3.jquery获取当前选中select的索引值 var index=$("#slc1 ").get(0).selectedIndex; 4

Jquery Easyui自定义下拉框组件使用详解(21)_jquery

本文实例为大家分享了Jquery Easyui自定义下拉框组件的实现代码,供大家参考,具体内容如下 加载方式 JS调用加载 自定义下拉框不能通过标签的方式进行创建. <input id="box" /> <script> $(function () { //JS 加载调用 $('#box').combo({ required : true, multiple : true, }); }); </script> 属性列表 <script>

jquery实现select下拉框美化特效代码分享_javascript技巧

这是一款基于jquery实现select下拉框美化特效代码,用户可以选择下拉菜单内容,是一款非常实用的特效源码.  为大家分享的jquery实现select下拉框美化特效代码如下 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="css/g.css" type="text/css&