javascript - 使用 Bootstrap 标签输入和 AJAX 时,表单输入的值不会在 ReadyState 上发生变化

标签 javascript jquery html ajax forms

我有以下 HTML 表单:

<form method="post" action="./results.php">
    <input type="submit" name="submitbtn" id="submitButton" class="btn btn-default btn-responsive" role="button">
    <input name="q" id="query" value="" data-role="tagsinput"/>
</form>

使用 AJAX 加载页面后,我想使用 http.responseText 填充值字段。我正在尝试这样做:

function AjaxFunction()
{
    url = 'fbserver.php';
    http.open("GET",url, true);
    http.onreadystatechange = function()
    {
        if (http.readyState == 4)
        {
            $(".se-pre-con").fadeOut("slow");
            var query = http.responseText; // The user's interests as a string
            document.getElementById("query").value = query;
            /* Tried refreshing the input here like suggested in the linked question ($('input').tagsinput();) */
        }
    }
    http.send(null);
}

但是,它不起作用,使表单输入为空并且 value 属性保持不变。我尝试了 document.getElementById("query").name = query; 并且 name 属性正常更改。

我猜这与前面提到的tagsinput插件有关here ,但我无法根据答案解决这个问题。任何帮助,将不胜感激! ;)

最佳答案

您应该使用插件的 api,而不是直接输入文本值。

我正在使用 jQuery(我认为该插件也依赖它,所以你也可以使用这种方法)。因此,在 ajax 调用中,您可以:

$('#query').tagsinput('add', http.responseText);

您可以在此处查看其他方法:https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/

关于javascript - 使用 Bootstrap 标签输入和 AJAX 时,表单输入的值不会在 ReadyState 上发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41489715/

相关文章:

javascript - 如何在 D3 Js 上下文菜单项旁边显示图像。

javascript - 如何在模板中加载和访问 Google 地方信息库?

javascript - Android 和 svg 中的平面图

javascript - Highcharts问题: variable legend height

jquery - 滚动到不滚动到正确的位置

javascript - 如何在用鼠标单击时更改 anchor 的文本?

javascript - ‘indexOf’方法性能优化

javascript - 如何通过特定键过滤javascript中的对象

html - 响应式容器流动性

html - 子内边距位于父元素之外