javascript - 在提交之前调用表单内的 ajax 显示 `Uncaught ReferenceError`

标签 javascript jquery html ajax python-3.x

我正在尝试从表单内部调用 ajax 函数来提取下拉列表的值。

mypython.py

@app.route('/new_data', methods = ['POST', 'GET'])
def new_data():
    #Filter data and return the data(data_list,filter_function_url) to myhtml.html file 

myhtml.html

<div>
<form ....method="POST" action="{{url_for('submit_new_data')}}" method="POST" enctype="multipart/form-data">
    ....
    ....
    <select id="selected_data" onchange='get_subdata_filters("{{ filter_function_url }}")'>
         <option disabled selected>Please Select Partner State</option>
          {% for f in data_list %}
          <option value="{{f}}">{{f}}</option>
          {% endfor %}
     </select>
</form>
</div>

myjsfile.js

这确实可以很好地处理 html 文件 中的 id selected_data 值以及从 html 获取的 selected_option_data_filter_url > filter_function_url 确实在控制台上正确显示,没有任何错误

function get_subdata_filters(selected_option_data_filter_url) {

  var selected_data = document.getElementById("selected_data").value;
  // make the user selected data into a dictionary/json
  var new_selected_data = {
    s_data:selected_data
  };
  console.log(new_selected_data);
  console.log(selected_option_data_filter_url);
}

当我在 js 函数中添加 ajax 调用时,直到 select

function get_subdata_filters(selected_option_data_filter_url) {

  var selected_data = document.getElementById("selected_data").value;
  // make the user selected data into a dictionary/json
  var new_selected_data = {
    s_data:selected_data
  };
  console.log(new_selected_data);
  console.log(selected_option_data_filter_url);
  $.ajax({
          type: "POST",
          contentType: "application/json;charset=utf-8",
          url: selected_option_data_filter_url,
          traditional: "true",
          async:false,
          timeout: 40000,
          data: JSON.stringify({new_selected_data}),
          dataType: "json",
          success: function(fselected_data){
            console.log(fselected_data)
          };
        });
}

我收到此错误 当我检查控制台时,未捕获的ReferenceError:get_subdata_filters未定义

做错了什么? 我该如何纠正这个问题?

最佳答案

您的 ajax 调用中有错误。
成功后删除 ; 并在 console.log()

后添加 ;
function get_subdata_filters(selected_option_data_filter_url) {

  var selected_data = document.getElementById("selected_data").value;
  // make the user selected data into a dictionary/json
  var new_selected_data = {
    s_data:selected_data
  };
  console.log(new_selected_data);
  console.log(selected_option_data_filter_url);
  $.ajax({
          type: "POST",
          contentType: "application/json;charset=utf-8",
          url: selected_option_data_filter_url,
          traditional: "true",
          async:false,
          timeout: 40000,
          data: JSON.stringify({new_selected_data}),
          dataType: "json",
          success: function(fselected_data){
            console.log(fselected_data);
          }
        });
}

关于javascript - 在提交之前调用表单内的 ajax 显示 `Uncaught ReferenceError`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59356622/

相关文章:

javascript - 用于确保 HTTPS URL 架构的正则表达式

javascript - 创建类似于 Google Analytics 的分析 map

javascript - 如果返回为空,如何让函数继续

javascript - 如何等待脚本加载

jquery - 第一次后,toggleClass() 不起作用

jquery - Kendo Mobile 中下拉列表的选定值显示 [object object]

html - 如何使用外部html文件在mailgun中发送数据?

javascript - jQuery UI Slider 对数刻度

php - Firefox 在 Web 应用程序上使用 "restore last session"函数

html - 自定义 Bootstrap 表