如何强制用户在javascript提示符下输入值?
我有这个jQuery代码,它会打开一个提示框。但问题是用户是否输入值,如果用户单击确定,它仍会继续执行代码。无论如何强制用户输入值,然后点击确定,否则他们不能点击确定按钮。如何强制用户在javascript提示符下输入值?
这是我试过的,但我没有工作。
$(function() {
$(".adminapprovepost").click(function(){
var id = $(this).attr("id");
var tag = prompt("you must enter one keyword to approve this post");
if(tag!=null)
{
$.ajax({
type: "POST",
url: "/admin/admin-approve-post.php",
data: {id:id,tag:tag},
success: function(){
}
});
$(this).parents(".postrecord").animate({ backgroundColor: "#fbc7c7" }, "fast")
.animate({ opacity: "hide" }, "slow");
}
return false;
});
});
它应该是这样的:
$(function() {
$(".adminapprovepost").click(function(){
var id = $(this).attr("id");
var proceed = true;
while(proceed) {
tag = prompt("you must enter one keyword to approve this post");
if (typeof(tag) == "string") {
tag = tag.trim()
if (tag!="")) {
proceed = false;
}
}
if (tag===null) {
proceed = false;
}
}
if(tag!=null)
{
$.ajax({
type: "POST",
url: "/admin/admin-approve-post.php",
data: {id:id,tag:tag},
success: function(){
}
});
$(this).parents(".postrecord").animate({ backgroundColor: "#fbc7c7" }, "fast")
.animate({ opacity: "hide" }, "slow");
}
return false;
});
});
编辑:现在,用户也可以点击 '取消'。它最终应该工作。 (我希望...)
问题是我无法点击取消按钮来退出脚本? – 2015-04-01 17:43:36
如果我点击取消,我得到这个错误:TypeError:prompt(...)为空。如何预防这个请? – 2015-04-01 17:48:58
改变它,但仍然得到这个错误:TypeError:提示(...)为空...当我点击取消 – 2015-04-01 17:53:56
您的测试是错误的,因为我的及时归还类空字符或空字符串(当用户只要点击就OK了,实际上发生)。我会写:
var tag = prompt("you must enter one keyword to approve this post");
if (tag != null) tag = tag.trim(); // assuming here you really want to do this
if (!tag) { // a non-empty value
:
您可以使用此代码:
var proceed = false;
while(!proceed)
{
tag = prompt("Please input the string:");
if (typeof(tag) == "string")
{
tag = tag.trim();
if (tag=="")//// no value
{
proceed = false;
alert('Invalid entry!!!');
}
else
{
proceed=true;
}
}
if (tag===null) ////cancel hits
{
proceed = false;
alert('Approve process cancelled !!!');
break;
}
}
if(proceed)
{
/////put your code here
}
while循环将继续问你的字符串,除非遇到特别提示中的取消按钮或放一个有效的条目。
while循环会继续询问您的字符串,除非您在提示中点击取消按钮或输入有效的条目 – 2015-12-06 11:01:19
'var tag = null; while(!tag){tag = prompt(“...”)。trim(); }' – CompuChip 2015-04-01 17:27:09
使用jQuery UI模式对话框代替这个,只能在Chrome中停止,如果用户不想停留 – mplungjan 2015-04-01 17:38:57
'tag = prompt(“...”)。trim();'当用户点击取消时不起作用,因为那么返回null。而'null'不能被修剪。 – dayoda 2015-04-01 18:22:34