看过很多关于这个主题的帖子,但似乎没有什么对我有用:
<script type="text/javascript">
function openprompt(){
$.prompt("Hello World!");
}
</script>
</head>
<body>
<a href="javascript:openprompt()">Test Impromptu States Survey</a>
<div id="results"></div>
<div id="wrapper">
some code.....
<div id="formWrapper">
<form action="create.php" method="post" onsubmit="return openprompt();">
如果我点击链接,js脚本运行正常并打开提示窗口,但是当我单击附加到表单的提交按钮时,脚本不会运行。我检查了数据库,发现php脚本运行正常。任何人都可以解释为什么js脚本没有运行和解决它的方法。感谢
答案 0 :(得分:1)
那是因为提交会触发重定向到表单的操作。你必须禁用它:
<form action="create.php" method="post" onsubmit="openprompt(); return false;">
更好的方法是在javascript中捕获事件(例如使用jQuery):
表格标签:
<form action="create.php" method="post" id="my-form">
javascript:
$(function () {
$('#my-form').on('submit', function (e) {
e.preventDefault(); // stop the actual submit
openprompt();
return false;
});
});
答案 1 :(得分:0)
实际上openprompt
已运行,但您的服务器会发送新页面,但您无法看到提示符&#34;窗口&#34;。
这是因为$.prompt()
创建/显示div
或其他一些模拟模态对话框的元素。但是,JS无法创建实际模态,因此提示并未真正阻止脚本,并且执行继续到openprompt
的末尾。由于未返回false
,因此提交按钮将执行其工作并提交表单。
要解决此问题,您需要使用input type="button"
代替提交按钮,并将onclick
添加到该按钮以显示提示。然后在需要时从$.prompt
的回调函数提交表单。
答案 2 :(得分:-2)
试试这个:
<form action="create.php" method="post" onsubmit="openprompt">