如何使用ajax或jquery将选择框的值发送到servlet?

时间:2013-07-10 15:26:26

标签: java jquery ajax jsp servlets

我是ajax的新手。我想重定向到servlet,选择框的参数值为我的servlet。这是我的代码,当我使用request.getParameter(“type”)时它没有检索值,它给了我一个null。

     <script>
       $(document).ready(function() {       
         $('#type').change(function() {                              
           $.get('pickasset', function(responseJson) {
             var type = $('#type').val();
            $.ajax({
                type:'POST',
                url: 'PickAssetServlet',
                data: type          
            }); 
           });
        });
      });
    </script>

    <form action="pickasset" method="post">
        <select id="type" name="type">
           <option value="Non-Sap">Non Sap</option>
           <option value="Sap">Sap</option>
        </select>
    </form>

当我更改选择框时,它必须转到servlet并在那里做逻辑。

3 个答案:

答案 0 :(得分:0)

发送您的数据 -

data: { type : type }

答案 1 :(得分:0)

如果您没有从选择字段中获取所选选项,则需要使用 $('#type').find(":selected").text()检索所选选项。 val()不适用于选择字段。也做pXL说的,因为这是你用jQuery ajax方法发送数据的方式

答案 2 :(得分:0)

复选框值必须以正确的方式从复选框中获取,如jQuery docs(http://api.jquery.com/val/)中所述,只需注意多个选择,您将拥有一系列值。根据文档,你做得对。

var varValue = var type = $('#type').val();

然后以'json'发送数据,您将能够使用request.getParameter('type')

读取它们
data: { "type" : varValue }

如果仍然为null,请尝试检查您的“类型”参数及其值是否在请求中(chrome请求检查器将非常有用,然后在调试器中进行检查)。

P.S。

只需检查您的webapp过滤链中是否有可能包含您请求或隐藏某些参数的内容,在某些大型网络应用中您很容易迷失。