javascript - 将 Jquery 自动完成的值检索到 Ajax 调用中

标签 javascript php jquery ajax jquery-ui-autocomplete

我在 index.php 页面中有一个 jquery 自动完成字段:

$html .= '<div class="ui-widget">
    <label for="tags">Tags:</label>
    <input id="tags" />
    <div id="tagsname"></div>
</div>';
$html .= "<script>
    jQuery.noConflict();
    jQuery(function () {
        var availableTags = [
            'ActionScript',
            'AppleScript',
            'Asp',
            'BASIC',
            'C'
            ];
            jQuery('#tags').autocomplete({
            source: availableTags
        });
    });
    jQuery(document).ready(function () {
        jQuery('#tags').on('change', function () {
            jQuery('#tagsname').html('You selected: ' + this.value);
        }).change();
        jQuery('#tags').on('autocompleteselect', function (e, ui) {
            jQuery('#tagsname').html('You selected: ' + ui.item.value);
        });
    });</script>";

我想将值检索到 ajax.js 文件中的 ajax 调用中:

jQuery.ajax({
        type: "GET",
        url: "setvalues.php",
        data: {"event": event}

调用是通过setvalues.php进行的:

if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }
    $_SESSION['event'] = $_GET['event'];

注意:ajax 函数通过按钮调用 onclick。

这就是上下文。 我想做的是从 Ajax 函数中的 jQuery 输入获取值。

我尝试做的事情: 我已经添加了这一行:

event = jQuery('#tagsname').html(ui.item.value);

在调用之前进入我的 ajax.js 文件以获取我需要的值,但它不起作用。 我收到此错误:

Uncaught ReferenceError : ui is not defined

我想还有另一种方法可以获取我的输入值,但我找不到方法。

注2:您可能会注意到我省略了一些行,例如在我的 ajax.js 文件中。这是为了清楚起见。

最佳答案

只需使用 jQuery 的 val()输入元素上的函数。我创建了一个简化的示例,其中输入的值显示在警报消息中。您可以在 Ajax 调用中执行相同的操作。

jQuery.noConflict();
jQuery(function () {
    var availableTags = [
        'ActionScript',
        'AppleScript',
        'Asp',
        'BASIC',
        'C'
        ];
        jQuery('#tags').autocomplete({
        source: availableTags
    });
});
jQuery(document).ready(function () {
    jQuery('#tags').on('change', function () {
        jQuery('#tagsname').html('You selected: ' + this.value);
    }).change();
    jQuery('#tags').on('autocompleteselect', function (e, ui) {
        jQuery('#tagsname').html('You selected: ' + ui.item.value);
    });
});

// Click event handler of "Get value" button
jQuery("#getValue").click(function() {
  // Select input element and take it's value using jQuery's val() function
  var selValue = jQuery("#tags").val();
  alert("Selected value: " + selValue);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>

<div class="ui-widget">
    <label for="tags">Tags:</label>
    <input id="tags" />
    <div id="tagsname"></div>
</div>

<button type="button" id="getValue">Get value</button>

关于javascript - 将 Jquery 自动完成的值检索到 Ajax 调用中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50171133/

相关文章:

javascript - 单击复选框+按钮后动态更改 slider 值

javascript - 使用javascript获取固定容器中元素的垂直位置

php - 使用 php 的多查询搜索表单

php - 如何在 PHP 中使用 substr() 捕获完整的单词,按单词限制?

jquery Cycle2 初始化脚本失败

javascript - fullcalendar:如何添加每天所有事件的总持续时间

javascript - Internet Explorer 浏览器中不显示 PHP 文件预览按钮

javascript - JavaScript 中的 BB 代码正则表达式

javascript - 如何使 HTML 表格在点击时展开?

php - SQL - 选择用户名 WHERE 角色 = $string