将 json 数组更新为 data-autocomplete 后,它不会更新 data-autocomplete 的值

Posted

技术标签:

【中文标题】将 json 数组更新为 data-autocomplete 后,它不会更新 data-autocomplete 的值【英文标题】:after updating json array to data-autocomplete it is not updating the value of data-autocomplete 【发布时间】:2018-10-26 12:36:20 【问题描述】:

我正在为一家医院创建一个动态表单。在这里,我遇到了数据自动完成的问题。问题是在将 json 数组更新为 data-autocomplete=' ' 后,它没有更新 data-autocomplete=' ' 的值。 因为我在前端表单中使用 html(bootstrap) 和 php Templete,所以所有链接都已正确排列,并且一个与此类似的输入元素工作正常,但我已经使用 php 更新了该输入的值。

HTML代码

<input type='text' class="form-control ui-autocomplete-input" data-autocomplete='' autocomplete="off" id="patient_type_desc" name="patient_type_desc" class="form-control" />

JQuery 代码

$.post(url, "referral":referral, function(data)
   //console.log(data);
   $('#patient_type_desc').attr('data-autocomplete', data);
);

此代码正在更新值,但在表单中自动完成未填充建议。

数据变量如下所示

["name1","name2"]

我也尝试了这个 jQuery 代码,但没有用 - 这个代码根本不起作用

$( "#patient_type_desc" ).autocomplete(
  source: data
);

【问题讨论】:

可能是类型。我认为 data 是一个数组, .attr 可能只能接受字符串。否则我看不到任何错误。 您好 Fliink 感谢您回答我的问题。 Jquery 代码正在使用数组,它正在更新为 data-autocomplete=' ' 但在形式上它没有起作用。这是我的问题。对不起,如果我说了什么不妥。 【参考方案1】:

请检查下面的代码,在这里也可以找到小提琴Fiddle .希望这对您有所帮助。

<div class="form-group ui-widget">
<label for="plugins">Patient Type desc</label>
<input type='text' class="form-control ui-autocomplete-input" data-autocomplete='' autocomplete="off" id="patient_type_desc" name="patient_type_desc" class="form-control" />
</div>

<script>
  $(function()   
     var patient_type_desc = [
    "name1",
    "name2",
    "name3",
    "name4"
    ];

    $("#patient_type_desc").autocomplete(source: patient_type_desc);

    $("ul.ui-autocomplete").css("left","450px");

);
</script>

<style>
ul.ui-autocomplete  padding-left: 0; list-style-type: none; border: black 1px solid; display: inline-block;
ul.ui-autocomplete li:hover  background-color: gray; 
ui-helper-hidden-accessible display: none;
</style>

【讨论】:

使用 - $("#plugins").autocomplete(source: plugin_names);这种方式根本行不通,兄弟 @Rajasekhar 你检查过上面提到的小提琴吗?它在那里工作。您使用的是哪个版本的 jquery? @Rajasekhar 我已经更新了代码并摆弄了您在问题中提到的控件名称。这样可以吗? 谢谢兄弟终于这个方法奏效了。我正在尝试使用 azax 我忘记将变量设为 Json Object【参考方案2】:

我的 Jquery 现在是这样的

$.post(url, "referral":referral, function(data)
                //console.log(data);
                $( "#patient_type_desc" ).autocomplete(
                    source: data
                );
                    //$('#patient_type_desc').attr('data-autocomplete', data);
                , "json");

最后通过添加“json”来工作。谢谢所有兄弟的。

【讨论】:

通过查看您的 jsFiddle 并将其添加到 azax 代码 ` "json" ` 根据提琴手你改变了你的rest api返回的json对象的格式,对吧?干得好。

以上是关于将 json 数组更新为 data-autocomplete 后,它不会更新 data-autocomplete 的值的主要内容,如果未能解决你的问题,请参考以下文章

PHP/MariaDB 使用嵌套 JSON 数组进行重复键更新

如何将存储在列中的 JSON 数组中的每个元素的行拆分为一行?

Laravel将DB字段设置为空数组

Laravel 雄辩不更新 JSON 列:数组到字符串的转换

如何将数组合并到 JSON 数组中

php如何将json数据写入数据库