javascript - onsubmit事件无法触发
黄舟
黄舟 2017-04-10 15:51:45
[JavaScript讨论组]

先上代码,用的zepto.js:

test1.php

<body>
<form action="test2.php" method="get" id="form1" name="form1" onsubmit="return formcheck();">
    <input type="text" name="text1" id="text1" />
    <input value="submitText" type="button" name="submit1" id="submit1" onclick="return document.form1.onsubmit();"/>
</form>
<script>
    function formcheck(){
        if($("#text1").val()==""||$("#text1").val()==null){
            alert("error");
            return false;
            }else{
                alert("success");
                return true;
            }
        }
</script>
</body>

今天被这个问题困扰了一下午了,用type="button"的按钮触发表单的onsubmit事件老是不成功。
分析一下流程吧,打开页面是这样的

在第一个域输入数据,如果输入为空则formcheck函数返回false,页面不跳转,若在第一个域输入任意数据都会跳转到test2.php,这是正常的情况。问题就是输入数据点击提交的时候跳转不正确。比如我输入了数据点击提交,正常来说formcheck函数应该返回true,我应该跳转到test2.php的,可是我点了提交,alert语句的success提示弹出来了,偏偏页面就是不跳转。我尝试过把提交按钮的input属性改为submit,运行正常。或是把提交按钮的onclick事件改成onclick="$('#form1').submit()",也是运行正常,偏偏就是input="button"的情况出问题,我觉得是return语句没有正确返回。百度了很久,尝试过把提交按钮的onclick改成onclick="document.form1.submit();",也是不行,更糟糕的是连onsubmit事件都没有触发直接跳转过去了,连alert的信息都没有输出。烦了一下午,特来此求大神解答,这是什么原因以及怎么解决的

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
高洛峰
<input value="submitText" type="button" name="submit1" id="submit1" onclick="return document.form1.submit();"/>

建议不要在html中嵌入js

PHP中文网

根本原因是你只是调用了onsubmit事件的方法,但是没有触发submit事件。要通过代码提交表单应该用form.submit()。完整代码:

<input value="submitText" type="button" onclick="return document.form1.submit();"/>

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号