javascript - 从 AJAX 响应动态创建复选框

标签 javascript jquery ajax twitter-bootstrap checkbox

我正在创建一个涉及 Bootstrap 的网站,并希望在模式对话框中显示复选框列表(计算机名称)供用户选择。我有一个 AJAX 调用和响应,它返回我想要的信息,但我不知道如何正确显示它。基本上,我收到的返回列表中的每个项目,我都想在模式中显示的列表中附加一个复选框。我以前做过类似的事情,感觉我很接近,但不太明白如何做这样的事情。如果有人能教我如何做到这一点,我将不胜感激!我的 javascript/html 代码来 self 的 JSP 页面。让我知道这是否不清楚或我需要更多信息。非常感谢!!!

    <div class="modal" id="myModal">
    <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">Workstations</h4>
        </div>
        <div class="modal-body">
          <ul id="wkslist"></ul>
        </div>
        <div class="modal-footer">
          <a href="#" data-dismiss="modal" class="btn">Cancel</a>
          <a href="#" class="btn btn-primary">Done</a>
        </div>
      </div>
    </div>
</div>
    </form>
</div>

这是我用于从我的 AJAX 调用返回的响应的 javascript 代码。

    function getWorkstations(e)
{
    var branchName = $('#txtBranch').val();


  if(e.checked)
      {
      $.ajax({
          url : 'ajaxwks.html',
          type: 'POST',
          data: branchName,
          cache:false,
          beforeSend: function(xhr) {


              xhr.setRequestHeader("Content-Type", "text/plain");

          },
          success : function(response) 
          {
             alert(response);

             $.each(response, function(key, value){


                 $('#wkslist').append($("<input type='checkbox' name=" + key + "").text(value) + "<br>");
             });
          },

          error:function(jqXhr, textStatus, errorThrown){
              alert(textStatus);
          }
      });

      //ajax call for workstations.
         $('#myModal').modal('show');
      }
}

这是我在 javascript 中执行警报时弹出消息框时返回的内容片段。

["10.117.181.101:NOVELL:001:7637:C",hb:NOVELL:001:7637:C","WD08900960051","WD08900960052","WD08900960056"]

最佳答案

以下是您可以在 success 中使用的示例。完成此任务的函数。

对您所做的更改包括将每个复选框包装在 <li> 中并添加相应的 <label>为它。

// sample of response from server
var response = { optionA: 'One', optionB: 'Two', optionC: 'Three' };

// this would go in your ajax success handler
$.each(response, function (key, value) {
    var li = $('<li><input type="checkbox" name="' + key + '" id="' + key + '"/>' +
               '<label for="' + key + '"></label></li>');
    li.find('label').text(value);
    $('#wkslist').append(li);
});
#wkslist {
    list-style-type: none;
    padding: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="wkslist"></ul>

关于javascript - 从 AJAX 响应动态创建复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26691776/

相关文章:

javascript - Cytoscape Js cose 布局为所有 Node 提供 0

javascript - 如何在 javascript 或 jQuery 中检查 div 和 input 标签是否为空?

javascript - 调整窗口大小/最大化窗口时背景/内容下半部分消失

jquery 文本区域的值

jquery - 使用 UJS、Rails 将数据添加到 AJAX 请求

javascript - Ajax 调用未从 Controller 返回成功

javascript - 使用 ngRoute 处理 AngularJS 错误

javascript - 在 JavaScript 中,如何在不使用 JQuery 的情况下使动态创建的 tablerow 可点击?

javascript - 按标题过滤图像实时搜索

javascript - 如何通过 id 或 class 区分 popover