You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过SUBMIT按钮传递参数调用JQuery函数

没问题,我来给你一步步拆解怎么实现这个需求——通过Submit按钮传递参数并调用jQuery函数,结合你提到的电影API场景,给你写个完整的可运行示例:

实现步骤

1. 先完善你的HTML表单

首先得给页面加一个带输入控件和Submit按钮的表单,比如让用户输入电影名称来传递搜索参数。把你的HTML调整成这样:

<!DOCTYPE html>
<html>
<head>
  <title>Movie Search Tool</title>
  <!-- 先引入jQuery库,不然没法使用它的函数 -->
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
  <!-- 电影搜索表单 -->
  <form id="movieSearchForm">
    <label for="movieTitle">输入电影名称:</label>
    <input type="text" id="movieTitle" name="movieTitle" placeholder="比如:Inception" required>
    <button type="submit">搜索电影</button>
  </form>

  <!-- 用来展示搜索结果的区域 -->
  <div id="searchResults" style="margin-top: 20px;"></div>

  <script>
    // 这里写jQuery逻辑代码
  </script>
</body>
</html>

2. 用jQuery监听表单Submit事件

接下来在<script>标签里写核心逻辑:监听表单的提交事件,阻止默认的页面刷新行为,获取用户输入的参数,再调用自定义函数处理API请求:

$(document).ready(function() {
  // 监听表单的submit事件
  $('#movieSearchForm').submit(function(e) {
    // 必须阻止表单默认提交行为,不然页面会直接刷新,没法用jQuery处理后续逻辑
    e.preventDefault();

    // 获取输入框里的参数值,trim()去掉前后空格
    var movieTitle = $('#movieTitle').val().trim();

    // 调用自定义的搜索函数,把参数传进去
    searchMoviesWithAPI(movieTitle);
  });

  // 定义处理电影搜索的函数
  function searchMoviesWithAPI(title) {
    // 用你提供的TMDB API举例,注意替换成你自己的API密钥(如果需要的话)
    var apiKey = '1ca8226c006afb25adc4c816a2f8c184';
    // 用encodeURIComponent处理参数,避免特殊字符导致的请求错误
    var apiUrl = `https://api.themoviedb.org/3/search/movie?api_key=${apiKey}&query=${encodeURIComponent(title)}`;

    // 用jQuery的ajax方法发起API请求
    $.ajax({
      url: apiUrl,
      method: 'GET',
      success: function(response) {
        // 处理返回的结果,把内容渲染到页面上
        var resultsHtml = '';
        if (response.results.length > 0) {
          response.results.forEach(function(movie) {
            resultsHtml += `
              <div style="border-bottom: 1px solid #eee; padding: 10px;">
                <h3>${movie.title}</h3>
                <p>上映日期: ${movie.release_date || '未知'}</p>
                <p>评分: ${movie.vote_average || '暂无评分'}</p>
              </div>
            `;
          });
        } else {
          resultsHtml = '<p>没有找到匹配的电影哦</p>';
        }
        $('#searchResults').html(resultsHtml);
      },
      error: function() {
        $('#searchResults').html('<p>搜索出错了,请稍后再试</p>');
      }
    });
  }
});

关键细节说明

  • 阻止默认提交e.preventDefault()是核心操作,不然表单会按照传统方式提交,直接刷新页面,我们的jQuery逻辑就跑不起来了。
  • 参数获取:如果你的表单有多个字段,可以用$(this).serialize()一次性获取所有表单参数,不用一个个单独取值。
  • API适配:如果你想用OMDB API,只需要修改searchMoviesWithAPI函数里的apiUrl即可:
    var apiUrl = `http://www.omdbapi.com/?apikey=bdd8feef&s=${encodeURIComponent(title)}`;
    

这样点击Submit按钮时,就会把用户输入的电影名称作为参数传递给jQuery函数,发起API请求后把结果展示在页面上啦。

内容的提问来源于stack exchange,提问作者Elbert Villarreal

火山引擎 最新活动