【问题标题】:adding parameter from html form to jquery string将参数从 html 表单添加到 jquery 字符串
【发布时间】:2022-02-20 16:38:32
【问题描述】:

我正在尝试在发送参数q=<query>、第二个参数l=<lquery>的javascript中添加以下异步调用,但我没有看到它已发送出去,请在开发工具控制台中检查

var searchbox = $('input#search');
var langquery = $('input#fav_language');
var timer = 0;

// Executes the search function 250 milliseconds after user stops typing
searchbox.keyup(function () {
  clearTimeout(timer);
  timer = setTimeout(search, 250);
});

async function search() {
  // Clear results before searching
  noresults.hide();
  resultdiv.empty();
  loadingdiv.show();
  // Get the query from the user 
  let query = searchbox.val();
  // Only run a query if the string contains at least three characters
  if (query.length > 2) {
    let lquery = langquery.val();   
    // Make the HTTP request with the query as a parameter and wait for the JSON results
    let response = await $.get(apigatewayendpoint, { q: query, l: lquery, size: 25 }, 'json');

html 正文如下。我尝试将单选表单 id 和输入名称引用到输入名称中,但均无效

<body>
  <h1>InfoLang - Movie Plot At Your Language</h1>
        
  <form id="lang">
  <p>Please select language:</p>
  <input type="radio" id="it" name="fav_language" value="Italian">
  <label for="it">Italian</label><br>
  <input type="radio" id="fr" name="fav_language" value="French">
  <label for="fr">French</label><br>
  <input type="radio" id="he" name="fav_language" value="Hebrew">
  <label for="he">Hebrew</label>
  <br>  
  </form>
  
   
  <hr>
  <input id="search" autocomplete="off" placeholder="Search your movie" align="center">

【问题讨论】:

  • 这看起来不错。您在浏览器的开发工具 Network 面板中看到了什么?
  • 但我没有看到它已发送出去。 => console 是你的朋友...在网络选项卡下,检查请求。
  • 你的 HTML 是什么样的?有&lt;input id="fav_language"&gt; 元素吗?进行 AJAX 调用时是否输入了值?
  • 你也可以在let response...上方console.log({ q: query, l: lquery, size: 25 });
  • 开发控制台仅显示 q=,这就是为什么我有点困惑 l 参数来自该页面上的单选按钮表单,而 langquery 最初将其检索到 lquery 我尝试了几个选项来填充out langquery - 使用单选按钮中选项的 id 或名称。没有人填写似乎要在-xxxxxxx中填充空间的参数?q=matrix%20%20&size=25 将表格添加到上述问题中

标签: javascript jquery forms async-await api-gateway


【解决方案1】:

我得到了这个-

if (query.length > 2) {
    let lquery
    if (document.getElementById('it').checked) lquery = 'it'
    if (document.getElementById('fr').checked) lquery = 'fr'
...

用于展示

let title = results[item]._source.title
        if (lquery == 'it') plot = results[item]._source.description_it
        if (lquery == 'fr') plot = results[item]._source.description_fr

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多