试图自学js。
我正在运行的ajax请求返回包含一些文本和一个数字的数据。该数字来自表单中的单选按钮列表,我试图设计一个方案来处理该值,以便:
要写入的文本由以下内容确定: 如果数字为3,那么它会写入"未发布"否则它会写出"发布"
要写入的文本由以下内容确定: 如果该数字为0,则在列表中写入"" 如果数字为1,它会在最近的交易中写入"" 如果数字是2,它会在列表和最近的交易中写下"
以下是我的脚本,它始终打印"未发布"并且始终在列表和交易中打印""无论从我的php脚本返回页面的价值如何。值是正确的,我有这些if语句在另一个页面上的PHP工作,但我需要在JS这里。
$.ajax({
type: "POST",
dataType: "json",
url: "add-list.php",
data: formData,
success: function(response) {
if (response.success) {
$("#modal1").modal('hide');
$("#add_frame").show();
$(".azoning").html(response.zoninga);
var transdec = response.transactiona;
if (transdec=3) {$(".atrans").html("NOT PUBLISHED");} else {$(".atransaction").html("PUBLISHED");}
if (transdec=0) {$(".atransaction").html("in LISTINGS.");}
if (transdec=1) {$(".atransaction").html("in RECENT TRANSACTIONS");}
if (transdec=2) {$(".atransaction").html("in LISTINGS AND RECENT TRANSACTIONS");}
}
else {
console.log("An error has ocurred: sentence: " + response.sentence + "error: " + response.error);
}
},
contentType: false,
processData: false,
error: function() {
alert("An Error has ocurred contacting the server. Please contact your system administrator");
}
});
我的js编码出了什么问题?
答案 0 :(得分:1)
您正在使用赋值运算符=
而不是相等比较运算符==
或===
。
此:
if (transdec=3) {$(".atrans").html("NOT PUBLISHED");} else {$(".atransaction").html("PUBLISHED");}
将“transdec”的值设置为3,然后检查该值是否为“truthy”。它不是零,所以实际上代码就像
transdec = 3;
if (true) {$(".atrans").html("NOT PUBLISHED");} else {$(".atransaction").html("PUBLISHED");}
答案 1 :(得分:1)
=
仅设置您需要的值==
if (transdec==3) {$(".atrans").html("NOT PUBLISHED");} else {$(".atransaction").html("PUBLISHED");}
if (transdec==0) {$(".atransaction").html("in LISTINGS.");}
if (transdec==1) {$(".atransaction").html("in RECENT TRANSACTIONS");}
if (transdec==2)....