确定是否选择了下拉列表

时间:2010-08-03 13:08:27

标签: jquery ajax

尝试通过ajax发送postdata
到目前为止,代码尝试了,

 var $inputs = $('#myform :input');
 var values = {};
 $inputs.each(function(i,field) {


                      if($(this).is(':text'))
                      {
                             //alert("id : " + field.id + " value : "+ field.value);
                             values[field.id] = field.value
                      }
                      if($(this).is(":radio"))
                      {
                                var v = $(this).attr('checked')
                                if (v == true)
                                {
                                       values[this.name] = $(this).val()
                                       //alert($(this).attr('checked'))
                                }
                      }
                      if($(this).is(":checkbox"))
                      {
                           var v = $(this).attr('checked')
                           if (v == true)
                           {
                               values[this.name] = $(this).val()
                               //alert($(this).attr('checked'))
                           }
                      }
                      alert($(this).is(":hidden"))
                      if($(this).is(":hidden"))
                      {
                           values[field.name] = field.value
                      }
                      //alert("dropdownlist : " + $(this).is('option:selected'));
                      //values[field.id]  = field.value


                });

它工作正常,但我想确定 是否选择了下拉列表 在它上面我需要添加values[field.id] = field.value
有没有办法找出下拉列表
$(this).is(':checkbox'),$(this).is(':text')相似 任何帮助都是有价值的

1 个答案:

答案 0 :(得分:2)

您可以检查它是否是<select>元素,如下所示:

$(this).is("select")

由于.is()采用任何选择器,只需使用element selector:)

从整体角度来看,您似乎在重新审核内置功能,看看.serialize().serializeArray(),您可以使用它来执行您已尝试过的功能,例如:

$.post(url, $("#myform").serialize());