js不使用onsubmit

时间:2014-10-27 16:05:19

标签: javascript onsubmit

看过很多关于这个主题的帖子,但似乎没有什么对我有用:

    <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脚本没有运行和解决它的方法。感谢

3 个答案:

答案 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">