按 post 标题搜索 wordpress 无需刷新
Search by post title wordpress without reflesh
我想在不刷新页面的情况下按标题创建 wordpress 搜索。当在搜索中键入超过 3 个符号时,必须显示新结果。我有以下形式的输入:
<form id="searchForm">
<input id="newsSearch" name="newsSearch" type="text" name="newsSearch" placeholder="Для отображения ленты по определенной компании введите ее название или тикер в это поле">
</form>
但是当我输入时 - 输入的值没有改变。如果我无法获得 input.value.length
,我如何在输入 3 个符号后搜索帖子?另外,如何在不刷新页面的情况下进行搜索?我知道可以用 ajax 来完成,但我得到了这段代码,但它什么也没做,提交后页面仍在重新加载:
<script>
$('#searchForm').submit(function(e) {
e.preventDefault(); // prevent from submitting form directly
$.ajax({
url: '<?php echo admin_url('admin-ajax.php'); ?>',
method: 'post',
data: $("#searchForm").serializeArray() // convert all form data to array (key:value)
})
.done(function(response){
alert('ok'); // show the response
$("#searchForm").reset(); // reset the form
})
.fail(function(error){
alert(error); // show the error.
});
})
</script>
您的输入值没有改变,因为您正在监听表单上的 'submit' 事件。您应该在 'input' 事件的输入元素上创建一个侦听器。
$('#newsSearch').on('input', function(e) {...
您应该在内部创建一个检查,如果值小于 3 个符号,函数将 return 不执行任何操作。
我想在不刷新页面的情况下按标题创建 wordpress 搜索。当在搜索中键入超过 3 个符号时,必须显示新结果。我有以下形式的输入:
<form id="searchForm">
<input id="newsSearch" name="newsSearch" type="text" name="newsSearch" placeholder="Для отображения ленты по определенной компании введите ее название или тикер в это поле">
</form>
但是当我输入时 - 输入的值没有改变。如果我无法获得 input.value.length
,我如何在输入 3 个符号后搜索帖子?另外,如何在不刷新页面的情况下进行搜索?我知道可以用 ajax 来完成,但我得到了这段代码,但它什么也没做,提交后页面仍在重新加载:
<script>
$('#searchForm').submit(function(e) {
e.preventDefault(); // prevent from submitting form directly
$.ajax({
url: '<?php echo admin_url('admin-ajax.php'); ?>',
method: 'post',
data: $("#searchForm").serializeArray() // convert all form data to array (key:value)
})
.done(function(response){
alert('ok'); // show the response
$("#searchForm").reset(); // reset the form
})
.fail(function(error){
alert(error); // show the error.
});
})
</script>
您的输入值没有改变,因为您正在监听表单上的 'submit' 事件。您应该在 'input' 事件的输入元素上创建一个侦听器。
$('#newsSearch').on('input', function(e) {...
您应该在内部创建一个检查,如果值小于 3 个符号,函数将 return 不执行任何操作。