Null值从我的jQuery脚本传递到Servlet

时间:2015-05-03 16:30:03

标签: java javascript jquery twitter-bootstrap servlets

我正在使用jQuery将jsp页面中的值传递给bootstrap模式,它正在运行。我想将相同的值从bootstrap模式传递给servlet。我尝试了ajax,帖子,似乎没有任何工作。这是我的HTML:

<div class="container" style="padding-top: 60px;" >                                          
    <select class="createAlarm" id="createAlarm" name="metrics">
        <option value="cpuUsage">CPU Usage</option>
        <option value="memoryUsage">Memory Usage</option>
        <option value="diskRead">Disk Read</option>
        <option value="diskWrite">Disk Write</option>
        <option value="diskUsage">Disk Usage</option>
        <option value="netUsage">Net Usage</option> 
    </select>
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" data-whatever="Create Alarm">Create Alarm</button>
   </div>

   <!-- Modal- Create Alarm -->
      <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
      <div class="modal-dialog">
      <div class="modal-content">
      <div class="modal-header">
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
     <h4 class="modal-title">Create Alarm</h4>
      </div>
        <form action="/ProjectName/createAlarm" method="post" id="addcard" class="form-horizontal" role="form">
         <div class="modal-body" style="height: 170px;">
          <div class="form-group" style="height: 30px;">
            <label for="title" class="col-md-3 control-label">Name</label>
            <div class="col-md-9">
               <input type="text" class="form-control" name="alarmName">
            </div>
            </div>
             <div class="form-group" style="height: 30px; margin-bottom:30px;">
            <label for="title" class="col-md-3 control-label">Description</label>
            <div class="col-md-9">
               <textarea class="form-control" name="desc"></textarea>
            </div>
            </div>

           <div class="form-group">
            <label for="priority" id="priority" name="priority" class="col-md-3 control-label">
            <input type="text" class="form-control" name="name">
             </label>
            <div class="col-md-9">
                <div class="col-md-3">
                <select name="sign" class="form-control">
                <option value="lessthan"><</option>
                <option value="greaterthan">></option>
                <option value="lessthanequalto"><=</option>
                <option value="greaterthanequalto">>=</option>
                </select>
                </div>
                <div class="col-md-3">
                    <input type="text" class="form-control" name="threshold">
                </div>
               </div>
              </div>
             </div>

          <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
           <button class="btn btn-primary" id="formSubmit" type="submit">Create Alarm</button>
           </div>
           </form>
          </div><!-- /.modal-content -->
         </div><!-- /.modal-dialog -->
        </div><!-- /.modal -->

这是我的jQuery部分:

<script>
 $('#myModal').on('show.bs.modal', function(e) {

var metrics_key = $('.createAlarm').val();
var metrics_label = $(".createAlarm option:selected").text();

// Now you have the key and label in variables.

// Write the key into the textfield.
$('#myModal input[name="name"]').val(metrics_key);
// Change the HTML of an element to the label.
$('#myModal label[for="priority"]').text(metrics_label);
$.post("/CMPE283_Project2/createAlarm", { val : $("#priority").text()});
alert($('#priority').text()); 
});

我的Servlet:

String Metric = request.getParameter("val");

但是,我为String Metric获取null。但单击“创建警报”按钮后弹出警报会显示我想要传递servlet的正确值。请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

您的帖子看起来不错,我相信它只是用于访问控件的jquery语法问题。 特别是,我希望文字输入,ID =&#34;优先级&#34; (不仅仅是代码中显示的标签),然后您使用&#39; .val()&#39; 访问它,而不是&#39; text()&#39 ;

<input type="text" id="priority" ... />

$.post('your url', {priority: $("#priority").val()} ...

至少这对我有用(jquery版本2.1.3)。如果你想确定,你可以先发布硬编码数据,例如{priority:&#39; 7&#39;}