【问题标题】:fixing input values and using them in the url of an ajax request修复输入值并在 ajax 请求的 url 中使用它们
【发布时间】:2012-04-11 08:11:57
【问题描述】:

我正在尝试从输入字段中获取一个值并在我的 ajax 请求的 url 中使用它。首先,我想修复输入以使其全部小写,以便它与我请求的文件的路径相匹配。对于这两家公司,我都尝试了不同的方法,但似乎都没有奏效。有任何想法吗?

function requestCompany1 (evt) {
        var company1 = $('#companyInput1').val(
            function(i, val) {
               return val.toLowerCase();
      }).val();

console.log(company1);
        var url1 = 'assets/js/' + company1 + '.json'
        $.ajax({
            url : url1,
            dataType: 'json',
                data: company1,
            success: function(data) {
          //code the run on success
              }


function requestCompany2 (evt) {
    var company2 = $('#companyInput2').val().toLowerCase();
    var url2 = 'assets/js/' + company2 + '.json'

    console.log(company2);
    $.ajax({
        url : 'assets/js/spling.json',
        dataType: 'json',
        data: company2,
        success: function(data) {
                //code to be called on success
        });
}

我知道我可以将这两个功能结合起来使它更容易,但我只是想先把它布置好。谢谢

EDITED 将.val() 添加到 company1 的末尾

【问题讨论】:

  • 请定义“似乎都不起作用”。
  • 服务器的响应是什么?检查 Chrome 的开发者控制台->“网络”->“XHR”请求。另外,我假设您在某处调用这些函数?如果没有,请在该代码 sn-p 中最后一个大括号后加上“()”,然后查看公司 2 是否适合您。
  • company1 在我登录时返回未定义
  • 没有响应,因为它试图在文件路径中使用未定义的值

标签: javascript jquery ajax lowercase


【解决方案1】:

第一个版本应该将输入元素的 jQuery 对象记录到控制台,因为您已经为 val() 方法提供了一个函数作为参数......它现在是一个 setter 而不是一个 getter。

如果你把它改成跟随它应该返回值:

var company1 = $('#companyInput1').val(
        function(i, val) {
            return val.toLowerCase();
    }).val();

第二个版本您没有将创建的 url 变量传递给 ajax 选项对象,并且存在语法错误...缺少 success 的右大括号

function requestCompany2 (evt) {
    var company2 = $('#companyInput2').val().toLowerCase();
    var url2 = 'assets/js/' + company2 + '.json'

    console.log(company2);
    $.ajax({
        url : url2,
        dataType: 'json',
        data: company2,
        success: function(data) {
                //code to be called on success
        }
   });
}

data 发送到 json 文件没有多大意义,除非它是服务器上的动态文件。如果是,您需要提供一个键/值对作为数据传递

【讨论】:

  • 查看我上面的编辑。 company1 以未定义的形式返回
  • 选择器有效吗?代码在上面的小提琴中工作。如果零选择器不正确,请尝试执行alert( $('#companyInput1').length)
猜你喜欢
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 2017-06-17
  • 2016-05-20
  • 2015-07-08
  • 1970-01-01
  • 2023-02-23
相关资源
最近更新 更多