将 Jquery 自动完成的值检索到 Ajax 调用中
2018-05-04
1005
我在 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 文件中。这是为了清楚起见。
2个回答
只需在输入元素上使用 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>
Vaidas
2018-05-04
要获取 div 值/文本,您应该尝试
let event = $('#tagsname').text();
设置值
$('element').text('some _value');
更新:
如果您想获取输入元素值,请使用 jquery val() 方法
$('input_element').val();
在您的情况下使用,
$("#tags").val();
BugHunter
2018-05-04