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