表单输入的值不使用Bootstrap标记输入和AJAX在readyState上更改

时间:2017-01-05 16:15:48

标签: 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属性正常更改。

我想这与taginput插件有关here,但我无法根据答案解决这个问题。任何帮助,将不胜感激! ;)

1 个答案:

答案 0 :(得分:1)

您应该使用插件的api而不是直接放置文本值。

我正在使用jQuery(我认为该插件也依赖于它,所以你也可以使用这种方法)。所以在你的ajax电话中,你可以:

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

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