Jquery multiselect不能动态地在onchange上工作

时间:2015-05-04 04:14:10

标签: jquery

<form:select id="businesstype" name="businesstype" path="businesstype"  >
  <c:forEach  items="${businesstype}" var="items">
    <option value="${items.businessTypeMstrId}" >"${items.businessTypeName}"     </option>
</c:forEach>
</form:select>

<select  id="stateId" multiple="multiple">
  <option value="">Select State</option> 
</select>
<script>





$("select#businesstype").change(function(){
            $.getJSON("reguser/loadStates",{countryId: 2}, function(j){
                //alret(j);
                 var options = '';
                 for (var i = 0; i < j.length; i++) {
                   //options += '<option value="' + j[i].id + '">' + j[i].name + '</option>';
                   options += '<option value="' + j[i]+ '">' + j[i] + '</option>';
                  // alert(j[i]);

                   var option = document.createElement("option");
                  option.text = j[i];
                  // option.value = j[i];
                   var select = document.getElementById("productSelect");
                   select.appendChild(option);
                   alert(select);


                 }
                 $('stateId').empty().append('<option value=1>My option</option><option value=1>My option77</option>'); //This line is not working

               });


           });

</script>

嗨,我是jQuery的新手,当我在jQuery事件中提供它时,我的下面的代码不起作用,但是当我在没有任何jQuery事件的情况下在JavaScript中提供它时它工作。我的完整代码如上所述。

$('stateId').empty().append('<option value=1>My option</option><option value=1>My option77</option>'); //This line is not working

2 个答案:

答案 0 :(得分:0)

您缺少文档就绪代码:

$(function() { //<-- missing this
  $("#businesstype").change(function(){
    //
  });
});

答案 1 :(得分:-1)

更改事件被触发和Ajax响应我也得到了正确的答案。但是我想要添加到下一个多选下拉列表中的ajax响应我在更改事件中写了下面的行。

 $('#stateId').empty().append(options); //This line is not working

但是我的ajax响应没有添加到这个多选下拉列表中。我正在使用以下API。

<script type="text/javascript" src="<%=request.getContextPath()%>/css/multiSelect/js/bootstrap-2.3.2.min.js">   </script>
<script type="text/javascript" src="<%=request.getContextPath()%>/css/multiSelect/js/bootstrap-multiselect.js">   </script>

此代码的预期输出,它将在下拉列表下创建复选框。 (用于多选)

如果我在更改事件之外编写此代码,我会得到预期的结果。但我需要ajax响应应该添加第一个下拉列表的更改。