Ajax与select标签的组合运用

-------------------------------------------------------------------------------------------------------

如下包含select的表单,使用Ajax提交表单数据:

<form>
    <select name="id">
        <option value="0">无</option>
        <option value="1">选项一</option>
        <option value="2">默认二</option>
        <option value="3">默认三</option>
    </select>
    <button>提交</button>
</form>
/*|---------------------------------------------------------------------------------|思路一:使用change事件,通过设置第一个option的value值,提交时固定获取第一个option的value值|@黑眼诗人 <www.chenwei.ws>|---------------------------------------------------------------------------------*/$(‘select‘).change(function(){
   var options = $("select").children();      //所有option对象
   oThis = $(this);                //当前option对象
   $(‘select‘).children(‘option:eq(0)‘).val(oThis.val());//设置第一个option的value值

  var id = oThis.val();  //第一个option的value值  var text = oThis.text();//选择的option文字   $(‘button‘).click(function(){    $.post(‘www.chenwei.ws‘, {id:id, text:text}, function(data){      //...........    });  });})

存在的问题:
1.当使用chang事件,再次选择默认option为‘无‘的情况,第一个option的value值不再变为0
/*|---------------------------------------------------------|思路二:使用option的selected属性,通过添加移除该属性 来标志选中|@黑眼诗人 <www.chenwei.ws>|---------------------------------------------------------*/$(‘select‘).children().click(function(data){
  var options = $(‘select‘),children();
  oThis = $(this);
  options.removeAttr(‘selected‘);
  oThis.attr({selected:‘true‘});
  var id = oThis.val();
  var text = $("option[selected=‘true‘]").text();
  $(‘button‘).click(function(){
    $.post(‘www.chenwei.ws‘, {id:id, text:text}, function(data){
     //............
    });
  });
})
存在的问题:
1.会改变原有select机制,选中的值无法显示
/*|---------------------------------------------------------------------------------------|思路三:不作更改操作,直接获取select标签的id值,文字为默认的option的文字,点击时获取option新的文字|@黑眼诗人 <www.chenwei.ws>
|---------------------------------------------------------------------------------------*/var select = $(‘select‘);
var option = select.children(‘option:eq(0)‘);
var detail = option.text();    //初始文字
select.children().click(function(){
  detail = $(this).text();    //如果有修改,动态获取文字
});

$(‘button‘).click(function(){
   var id = select.val();      //直接获取select的id即为提交的id
   var detail = detail;

   $.post(‘www.chenwei.ws‘, {id:id, detail:detail}, function(data){
       //.............
   })
});

使用‘思路三‘实现的Ajax提交与select标签的组合,没有发现存在任何的问题。

--------------------------------------------------------------------------------------------------------

Ajax与select标签的组合运用,布布扣,bubuko.com

时间: 2024-10-12 12:18:03

Ajax与select标签的组合运用的相关文章

JSTL和select标签的组合使用

1.用于根据不同的值显示对应的内容,不能选择 <select name="grade"> <c:choose> <c:when test="${grade == 'A'}"> <option value="A" selected>A</option> </c:when> <c:when test="${grade == 'B'}"> <o

HTML &lt;select&gt; 标签&lt;option&gt; 标签

HTML <select> 标签 定义和用法 select 元素可创建单选或多选菜单. <select&> 元素中的 <option> 标签用于定义列表中的可用选项. 提示和注释: 提示:select 元素是一种表单控件,可用于在表单中接受用户输入. 属性 New: HTML5 中的新属性. HTML <option> 标签 定义和用法 option 元素定义下拉列表中的一个选项(一个条目). 浏览器将 <option> 标签中的内容作为

HTML中的&lt;select&gt;标签如何设置默认选中的选项

方法有两种. 第一种通过<select>的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果. 1 2 3 4 5 < select  id =  "sel" > < option  value = "1" >1</ option > < option  value = "2"  selected = "selected" >2</ opt

mybatis 中 sql 映射文件 select 标签以及 入 resultMap 标签的应用

1.自定义某个 javabean 的封装规则: 注:可以看到,select 标签中引用了 定义好的 resultMap 的值.resultMap 标签中的 type 为javabean 类型,id 为唯一标识.id 子标签定义主键(这样定义底层会有优化.)column 属性为字段名,property 属性为字段值. 注:可以看到测试结果没有出现问题,说明代码没有错误. 2.自定义某个 javabean 的级联属性封装: a.准备工作:mysql 数据库中,在之前 tbl_employees 表的

selenium处理select标签的下拉框

有时候我们会碰到<select></select>标签的下拉框.直接点击下拉框中的选项不一定可行.Selenium专门提供了Select类来处理下拉框. <select id="status" class="form-control valid" onchange="" name="status"> <option value=""></option&g

Html 中select标签的边框与右侧倒三角的去除

首先是边框的去除:可以设置属性border:none;或border:0px; 不过这还是有一个bug,不同浏览器会在选中select标签时,加上一个边框: 之后是右侧倒三角的去除:设置属性 appearance:none; 以下所有属性兼容当前主流浏览器:appearance:none; -moz-appearance:none; -ms-appearance:none; -o-appearance:none; -webkit-appearance:none; (不过对与IE浏览器这个属性好像

select标签中怎样控制option的显示数量

最近做项目,需要动态加载数据显示到下拉列表中. 刚开始用select标签,由于数据较多,一次性全部加载,下拉列表会拖得很长,不忍直视(默认会显示20个). 我想控制select中的option显示的个数,例如:只显示5个,其余的通过滚动条来控制显示. 经过反复折腾,发现直接操作select标签无法达到目的,于是改换策略,用input标签和ul标签来模拟select标签. 效果: Demo下载 select标签中怎样控制option的显示数量,布布扣,bubuko.com

html之select标签

循环select标签 1 <select name="group_id"> 2 {% for row in group_list %} 3 <option value={{row.id}}>{{ row.caption }}</option> 4 {% endfor %} 5 </select>

select标签multiple属性的使用方法

前些日子公司让做一个功能模块,对于里面一个小功能费了些周折,现将其总结一下: 一.实现效果: 一.实现代码: <!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/xhtml&qu