有关Ajax响应的问题

时间:2015-02-02 05:00:05

标签: jquery ajax

我使用了三个具有相同类别的选择框以及一个单选按钮。如何在ajax响应中获取选定的下拉值?

我的问题是,我正在获取ajax中的第一个选择框,但是当我尝试选择第二个或第三个时,我得到一个空值。

你能告诉我错误在哪里或者给我在ajax中取值的想法吗?

以下是代码:

<td><input type="radio" id="active_btn" name="status" value="yes">Active</td>
        <td><select class="desig_opt" name="select_opt" ><option value="" >Select</option><option value="Admin" >Admin</option>
    <option value="Staff" >Staff</option></select></td>
    <td><input type="radio" id="deactive_btn" name="status" value="no">Deactive</td>
        <td><select class="desig_opt" name="select_opt" ><option value="" >Select</option><option value="Admin" >Admin</option>
    <option value="Staff" >Staff</option></select></td>
    <td><input type="radio" id="both_btn" name="status" value="both">Both</td>
         <td><select class="desig_opt" name="select_opt"> <option value="" >Select</option><option value="Admin" >Admin</option>
    <option value="Staff">Staff</option></select></td>

在ajax响应中,我使用下面的行来获取所选值:

var admin=$(".desig_opt option:selected").val();

这是采取价值观的正确方法吗?如果没有,你能告诉我怎么做?

2 个答案:

答案 0 :(得分:0)

您必须为每个选择下拉列表分配单独的ID,以便您可以单独获取它们以发送您的ajax数据。

例如;

var admin1= $('#desig_opt1').find('option:selected').attr("value");
var admin2= $('#desig_opt2').find('option:selected').attr("value");
var admin3= $('#desig_opt3').find('option:selected').attr("value");

查看jsfiddle.

中的回复

答案 1 :(得分:0)

(".desig_opt option:selected") , returns an array.

尝试

JS

function test(){

   var admin=$(".desig_opt option:selected");


    $.each(admin, function( index, value ) {
        alert( $(admin[index]).val() );
    });       

}

DEMO

也许您可以将值存储在其他数组中,如

function test(){

   var admin=$(".desig_opt option:selected");

    var data = [];

    $.each(admin, function( index, value ) {
        // validate if $(admin[index]).val() != '' before add ?? 
        data.push($(admin[index]).val());
    });

    alert(data);

}

DEMO