快速背景:非常适合网络开发。我有一个带有用户可填写表单的引导页面。有四个字段(两个文本框,一个广播,一个下拉列表)。我的想法是使用输入数据形成一个JSON并将其发送到我的HTTP服务器,但它似乎不再起作用了。
非常奇怪,我的代码几个小时前完美运行(已经使用requestb.in进行了测试)。 现在突然它(1)只发送POST,如果我有apiname和apiurl变量的长值,并且(2)不再看到我从收音机复选框(env1 - env3)中选择的内容,并且相反,我一直认为我选择了开发,'无论实际选择什么。 我假设我的问题是由我的代码中的jQuery而不是HTML引起的,所以我在这里附上了:
canvas.width*=2
感谢您的帮助!
答案 0 :(得分:0)
第一个问题:为什么总是“开发”?
问题在于您使用赋值的if语句,而不是布尔比较。您需要使用==
来比较两个值的相等性。相反,您设置env1.checked = true
,其评估结果为true,因此env
始终设置为"Dev"
。
if (env1.checked == true) {
var env = "Dev";
} else if (env2.checked == true) {
var env = "Stage";
} else if (env3.checked == true) {
var env = "Prod";
}
甚至
var env;
if (env1.checked) {
env = "Dev";
} else if (env2.checked) {
env = "Stage";
} else if (env3.checked) {
env = "Prod";
}
第二个问题:为什么不发布?
您应该尝试简化一下代码:
$(document).ready(function(){
var env1 = document.getElementById("seldevid");
var env2 = document.getElementById("selstageid");
var env3 = document.getElementById("selprodid");
$("button").click(function(){
var env = "Dev";
if (env2.checked) {
env = "Stage";
} else if (env3.checked) {
env = "Prod";
}
$.post("http://requestb.in/107fmof1",
{
apiName: $("#apinameid").val(),
apiURL: $("#apiurlid").val(),
environment: env,
action: $("#actionid").val()
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
}
);
});
});
然后使用浏览器Developer Tools查看究竟正在POST的内容,如果有的话。