2016-10-13 46 views
-1

我有一个提交事件,使用native POST(非Ajax)。提示用户确认提交没有AJAX

<form method="post"> 
<button type="submit" value="submit"></button> 
</form> 

如何在用户点击提交按钮时提示用户?如果用户点击确认,那么只有它会继续..我知道我可以用ajax做到这一点,但是否可以用native post做到这一点?

回答

1

您可以将confirm()添加到submit事件的形式,它的值返回给匿名函数如下(使用jQuery):

$('form').on('submit', function() { 
    return confirm('Are you sure?'); 
}); 

+0

可我把它内联?因为它只是一条线 –

+1

那么你*可以*内联,但这是非常糟糕的做法。 (请参阅我刚刚对其他答案做出的评论)。 – BenM

+0

为什么不好的做法?对于我的注册页面,我没有任何js文件。所以也许只是线路,它只是提示一条线路确认消息。 –

0

只要做到这一点

<form onsubmit="return confirm('Are you sure?')" /> 
+1

尽量避免推荐侵入事件处理程序。 – BenM

+0

@BenM我发现这是更直接的,为什么不呢? –

+0

@MariaJane https://www.w3.org/wiki/The_principles_of_unobtrusive_JavaScript – BenM

0

虽然这不是推荐的方式,但它会做你想要什么

<form method="post" onsubmit="return confirm('Do you really want to submit');"> 
    <button type="submit" value="submit">Submit</button> 
</form> 
0

function submitForm() { 
 
var r = confirm("Do you want to submit the form?"); 
 
if (r == true) { 
 
    document.getElementById("mainForm").submit(); 
 
} else { 
 
    return false; 
 
} 
 
}
<html> 
 
<body> 
 
<form id="mainForm" method="post" onsubmit="submitForm()"> 
 
    Enter name: <input type="text" name="fname"> 
 
    <input type="submit" value="Submit"> 
 
</form> 
 
</body> 
 
</html>

+0

请不要推荐入侵事件处理程序。另外,不需要你的if()else'块,只需''confirm'()'函数。 – BenM

+0

它显示有可能从确认对话框中获得回复,大多数情况下您需要在提交或取消时执行某些操作。 – mbadeveloper

0

是的,这是可能的。

<form id="f" action="demo_form.asp" onsubmit="return false"> 
    Enter name: <input type="text" name="fname"> 
    <input type="submit" onclick="t()" value="Submit"> 
</form> 

<script> 
function t() { 
    if(confirm("Yo")){ 
     var form = document.getElementById("f") 

     form.submit() 

    } 
} 
</script>