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

时间:2018-05-04 09:01:42

标签: 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函数。

这就是背景。 我想要做的是从我的Ajax函数中获取jQuery输入的值。

我尝试过做的事情: 我已经把这一行:

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

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

Uncaught ReferenceError : ui is not defined

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

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

2 个答案:

答案 0 :(得分:1)

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

ibase_connect()
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);
});

答案 1 :(得分:0)

要获得div值/文本,您应该尝试

let event = $('#tagsname').text();

设置值

$('element').text('some _value');

更新

如果要获取输入元素值,请使用jquery val()方法

$('input_element').val();

在您使用的情况下,

$("#tags").val();