如果我的函数评估为true,如何使我的Confirm语句过帐状态;如果为false,如何取消?

时间:2019-04-26 14:06:26

标签: javascript if-statement confirm

我希望用户单击提交时弹出确认框,但前提是他们的帖子中包含诸如“ sale”和“£”之类的字符串。不幸的是,无论是否单击“确定”或“取消”,该代码都会转发到操作页面。

我还尝试创建另一个包含“ confirm”语句的“ if else”,为“确定”返回“真”,为“取消”返回“ False”,但无济于事。

很抱歉,如果其中一些内容难以理解,我是一个菜鸟,正在尝试把头转向JavaScript。

<script>
function check() {

 var post = document.forms["myForm"]["newPost"].value;
    if (post.indexOf('sale') > -1 || post.indexOf('£') > -1) {
     confirm("If this is a 'for sale' post, please post to the marketplace instead. Press OK to post as a general status."); 
 }
}
</script>

<form name="myForm" action="/post-page.php" onSubmit="return check()" method="post">
Post: <input name="newPost" id="newPost">
  <input type="submit" value="Post Now">
</form>

预期:按OK将发布状态。

结果:这两个选项均显示状态。

1 个答案:

答案 0 :(得分:3)

您必须使用confirm() return 值来控制事件的流程:

function check() {

 var post = document.forms["myForm"]["newPost"].value;
    if (post.indexOf('sale') > -1 || post.indexOf('£') > -1) {
     var res = confirm("If this is a 'for sale' post, please post to the marketplace instead. Press OK to post as a general status."); 
     if(res) return true;
     else return false;
 }
}
<form name="myForm" action="/post-page.php" onSubmit="return check()" method="post">
Post: <input name="newPost" id="newPost">
  <input type="submit" value="Post Now">
</form>