更改时下拉值未更改

时间:2019-06-18 13:35:52

标签: jquery ajax

在jQuery中,当我第一次从选择中选择时,然后显示正确,之后再次更改选择选项时,则在下拉列表中显示具有新选择值的最后一个选择的值。每当更改选择选项时,我都想要新的值。谁能告诉我问题是什么?我尝试了许多解决方案,但听不懂。

<select name="salutation_specify" id="DropDownList" class="form-control" required>
$("select[name='dr_designation']").change(function() {
  var dr_designations = $(this).val();
  console.log(dr_designations);
  var token = $("input[name='_token']").val();

  $.ajax({
    url: "<?php echo route('fm.designation_show') ?>",
    method: 'POST',
    data: {
      dr_designations: dr_designations,
      _token: token
    },
    success: function(data) {
      // console.log(data.specify_specialty);
      $(".specify").each(function() {
        $(this).find('option').not(':first').remove();
      });

      $.each(data, function(i, item) {
        // $('.specify').append("<option value='"+item.specify_specialty+"' >"+item.specify_specialty+"</option>");
        console.log(item.specify_specialty);
        var x = item.specify_specialty;
        var splitValues = x.split(",");
        for (var i = 0; i < splitValues.length; i++) {
          var opt = document.createElement("option");

          // Add an Option object to Drop Down/List Box
          document.getElementById("DropDownList").options.add(opt);

          // Assign text and value to Option object
          opt.text = splitValues[i];
          opt.value = splitValues[i];
        }
      });
    }
  });
});

2 个答案:

答案 0 :(得分:2)

  

您在这里犯了1个错误。

$(".specify").each(function() {
        $(this).find('option').not(':first').remove();
      });
  

尝试使用。

$("#DropDownList").each(function() {
        $(this).find('option').remove();
      });

答案 1 :(得分:0)

您的问题有点难以理解,但是,如果我理解正确,那么每次在选择输入中更改值时都需要该值,对吗?如果答案是肯定的,请以这种方式更改第一行代码:

$(“ select [name ='dr_designation']”)。onchange(function(){

也许在文档准备好后加载脚本

让我知道! 费德