【问题标题】:Javascript or jQuery: Saving input value into variable which is saved into another variableJavascript或jQuery:将输入值保存到另一个变量中的变量中
【发布时间】:2017-12-01 19:12:08
【问题描述】:

我一直在尝试将输入中的值保存到一个变量中,然后将其保存到另一个变量中,该变量包含一个 api 调用 url,然后绑定到一个 getJSON 函数,由于某种原因,我似乎无法保存该值输入到变量中,它一直回复为空白,但在控制台中它显示为输入值所包含的内容。我做错了什么?

更新: 下面是不包括已保存变量的 url 图像。它应该显示我在完整 url 中输入到变量中的内容。如您所见,login_name= 为空,login_password 也是如此。

jsFiddle:https://jsfiddle.net/m25pLka5/

HTML:

<form id="sso-login">
  <table>
    <tr>
      <td>User Name:</td>
      <td><input class="username" name=login_name type=text size=15 maxlength="100"></td>
    </tr>
    <tr>
      <td>Password:</td>
      <td><input class="password" name=login_password type=password size=15 maxlength="100"></td>
    </tr>
    <tr>
      <td>Remember Me:</td>
      <td><input name=remember_me type=checkbox></td>
    </tr>
  </table>
  <input type="submit" value="Submit" name="Submit" />
</form>

jQuery:

$(function(){
  var username = $('.username').val();
  var password = $('.password').val();

  var ssoURL = 'https://testing.com/';
  var ssoMethod = 'testingMethod&login_name='+ username +'&login_password='+ password +'&v=1.0&response_format=json';

  $("#sso-login").submit(function(e) {
    e.preventDefault();
    $.getJSON(ssoURL + ssoMethod, function(data) {
      console.log(data);
    });
  });
});

【问题讨论】:

  • 可能你忘了??var=somthing&amp;var1=somthing
  • 问题是您在页面加载时获取用户名和密码的值,并且从不更新代码中的这些变量。查看下面的解决方案,该解决方案将该值移动到提交处理中,该处理将在提交时获取它们的值。是的,还有网址中缺少? 的问题。
  • 究竟出了什么问题?您确定“testing.com”提供 JSON 吗?你能在浏览器中打开“testing.com/testingMethod”吗?并且你应该在“testingMethod”之后加上引号而不是和号(“&”)。
  • 我删除了我的 API 调用的 url,并且测试仅用于测试方法,问题不在于 url 调用,而是当我 concat 时变量未插入到输出的 API 结果中它。
  • @MQ 正如我所说,这是因为您在页面加载时设置了这些变量。

标签: javascript jquery forms variables get


【解决方案1】:

试着改变你的代码

$(function(){  
  $("#sso-login").submit(function(e) {

   var username = $('.username').val();
  var password = $('.password').val();

  var ssoURL = 'https://testing.com?';
  var ssoMethod = 'testingMethod&login_name='+ username +'&login_password='+ password +'&v=1.0&response_format=json';
    e.preventDefault();
    $.getJSON(ssoURL + ssoMethod, function(data) {
      console.log(data);
    });
  });
});

而不是使用类从元素中获取 vals 尝试使用 ids 有时如果类在 dom 中的其他地方(输入之前)使用过,可能会发生冲突,所以尽可能使用 ids

而且我猜你的 apis url 在 params 参数开始之后是错误的?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多