javascript - 单击任何按钮都会提交表单。如何阻止这种情况?

标签 javascript php html forms

我正在尝试创建一个表单,它将接受用户输入来创建数据库查询。我有三个按钮:与、或、运行

我正在通过单击“And”和“Or”按钮来创建动态元素。 enter image description here

div search_list 是包含元素的容器。 我需要在单击“运行”时提交表单。

奇怪的是,每当我单击任何按钮时,表单都会被提交。我该如何阻止它?如果您需要更多信息,请告诉我。

谢谢

        <html>
        <head>
        <script type="text/javascript">

            var count = 0;
            function loadfirst(){
                count=1;
                addFilter('');
            }
            function addFilter(flag){
                var div = document.querySelector("#search_list"); 
                tr = document.createElement("tr");
                select = document.createElement("select");
                var sear_value = document.createElement("input");
                var and_or = document.createTextNode(flag);
                tr.id='tr_'+count;
                select.id='sl_'+count;
                sear_value.id='sear_value_'+count;

                select.options.add( new Option("user id","user_id", true,true) );
                select.options.add( new Option("First name","first_name"));
                select.options.add( new Option("Last name","last_name"));
                select.options.add( new Option("Course","course"));

                sear_value.type="text";

                if(count<=1){
                    var bt_and= document.createElement("button");
                    bt_and.id='and';
                    var bt_label = document.createTextNode("And");
                    bt_and.appendChild(bt_label);
                    bt_and.addEventListener('click', function() {
                        addFilter('and');
                        return false;
                    });

                    var bt_or= document.createElement("button");
                    bt_or.id='or';
                    var bt_label = document.createTextNode("Or");
                    bt_or.appendChild(bt_label);
                    bt_or.addEventListener('click', function() {
                        addFilter('or');
                        return false;
                    }); 
                }
                else{
                    var bt_rem= document.createElement("button");
                    bt_rem.id='rem_'+count;
                    var bt_label1 = document.createTextNode("x");
                    bt_rem.appendChild(bt_label1);
                    var tr_id = 'tr_'+count;

                    bt_rem.addEventListener('click', function() {
                    var element= document.getElementById(tr_id);
                        element.parentNode.removeChild(element);
                        return false;
                    });
                }

                tr.appendChild(and_or);
                tr.appendChild(select);
                tr.appendChild(sear_value);
                if(count<=1){
                    tr.appendChild(bt_and);
                    tr.appendChild(bt_or);
                }
                else{
                    tr.appendChild(bt_rem);
                }
                div.appendChild(tr);

                count++;
            }

            function getFilter(){

                alert();

            }




        </script>
        </head>

        <body onload="loadfirst()">

        <span id='manage_stud_header' class= 'list_header'>

            <label><?php echo $module_name;?></label>
            &nbsp;&nbsp;
            <center>
                <form>
                <div id='search_list' class='search'></div>
                <button id="run_filter" type="submit">Run</button>
                </form>
            </center>

        </span>
        </body>
        </html>

最佳答案

按钮的默认类型是“提交”,因此您必须明确表示您想要一个普通按钮:

var bt_and= document.createElement("button");
bt_and.type = "button";

这样单击时就不会提交表单。 (当然除非你告诉它:))

关于javascript - 单击任何按钮都会提交表单。如何阻止这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28395022/

相关文章:

javascript - jqGrid的columnChooser第一次不显示效果

javascript - 使用鼠标的简单 2D 游戏

php - 无法使用 DOMDocument->save ('filename' 保存 xml 文件)

php - 如何在没有管理权限的情况下向 Axapta 数据库添加其他信息?

javascript - 在浏览器中调整游戏大小

javascript - 构建进度条以在显示前加载所有内容

php - 在 PHP 中,正则表达式从字符串中删除井号(如果存在)

html - css 中的背景图像不起作用

javascript - 需要将 gpa 计算器与 HTML 中的可填写表格关联起来

javascript - javascript中最合适的全局变量?