我有以下问题:
我想将数据从 window.prompt sweetalert框的输入传递到服务器。但是我有一个问题,因为我不知道甜蜜警报window.prompt框的数据的什么是什么。
以下是我的意思:我有以下script
function save3() {
var id;
var pn = 4;
var pososto = 5;
var a1 = 3;
var a2 = 2;
var flag1 = true;
swal("Give the User Id:", {
input: "text",
content: "input"
})
.then((value) => {
//swal(`You typed: ${value}`);
// Do stuff with value
id = parseInt(value);
if (id) {
console.log("Is a number");
} else {
console.log("Is not a number");
}
return id;
}).then(id => {
sendToServer(id);
});
function sendToServer() {
// Implement send to server ajax request logic...
$("#user_id").val(id)
$("#book_id").val(a2)
$("#game_id").val(a1)
$("#percent_id").val(pososto)
$("#site_id").val(pn)
swal("nai!!!!!!!!!!!!!!!!!!", "Great! The game has been saved", "success");
}
}
如您所见,当用户单击按钮时,将出现window.prompt甜蜜警报框,并要求用户提供用户ID,该ID应该仅为数字。我尝试使用函数parseInt
将字符串数据转换为数字,但是它不起作用。奇怪的是,使用经典的window.prompt可以正常工作。你有什么想法吗?
答案 0 :(得分:1)
您将无法调用ParseInt(“ value”),如果不在代码的.then()块中,则该值将是未定义的,请尝试执行以下操作:
.then((value) => {
swal(`You typed: ${value}`);
var a = parseInt(value);
});
但是,输入类型似乎是字符串,因此parseInt无法正常工作,您可以尝试执行以下操作:
.then((value) => {
swal(`You typed: ${value}`);
console.log(typeof(value))
});
这应该返回值的类型。
希望这会有所帮助!
劳埃德
答案 1 :(得分:0)
您可能在理解诺言如何运作时遇到问题。您将可以像以前一样访问then
内甜蜜警报框的值。您所有的逻辑都需要作为Promise流的一部分。您还可以保持链接然后进行回调,以对数据进行其他逻辑处理。例如:
swal("Give the User Id:", {
input: "text",
inputPlaceholder: 'Enter your password',
content: "input"
})
.then((value) => {
swal(`You typed: ${value}`);
// Do stuff with value
const id = parseInt(value);
if (id) {
console.log("Is a number");
} else {
console.log("Is not a number");
}
return id;
}).then(id => {
sendToServer(id);
});
function sendToServer() {
// Implement send to server ajax request logic...
}