621

我有一个表格,有 2 个按钮

<a href="index.html"><button>Cancel changes</button></a>

<button type="submit">Submit</button>

我也在它们上使用 jQuery UI 的按钮,就像这样

$('button').button();

但是,第一个按钮也提交表单。我会认为,如果它没有type="submit",它就不会。

显然我可以做到这一点

$('button[type!=submit]').click(function(event) { event.stopPropagation(); });

但是有没有一种方法可以阻止后退按钮在没有 JavaScript 干预的情况下提交表单?

老实说,我只使用了一个按钮,所以我可以使用 jQuery UI 来设置它的样式。我尝试调用button()链接,但它没有按预期工作(看起来很丑!)。

4

8 回答 8

1364

元素type属性button 默认值为“提交”。将其设置type="button"为生成不提交表单的按钮。

<button type="button">Submit</button>

HTML 标准的话来说:“什么都不做。”

于 2010-07-23T02:36:48.097 回答
237

button元素的默认类型为submit.

您可以通过设置以下类型使其不执行任何操作button

<button type="button">Cancel changes</button>
于 2010-07-23T02:38:53.363 回答
19

只需使用好的旧 HTML:

<input type="button" value="Submit" />

如果您愿意,可以将其包装为链接的主题:

<a href="http://somewhere.com"><input type="button" value="Submit" /></a>

或者,如果您决定希望 javascript 提供一些其他功能:

<input type="button" value="Cancel" onclick="javascript: someFunctionThatCouldIncludeRedirect();"/>
于 2010-07-23T02:33:09.900 回答
7
<form onsubmit="return false;">
   ...
</form>
于 2015-12-07T05:43:57.157 回答
6

是的,您可以通过添加值按钮类型的属性来使按钮不提交表单: <button type="button"><button>

于 2019-09-27T14:39:16.167 回答
5

老实说,我喜欢其他答案。简单,无需进入 JS。但我注意到你问的是关于 jQuery 的问题。因此,为了完整起见,在 jQuery 中,如果您使用 .click() 处理程序返回 false,它将否定小部件的默认操作。

有关示例,请参见此处(以及更多好东西)。 这也是文档

简而言之,使用您的示例代码,执行以下操作:

<script type="text/javascript">
    $('button[type!=submit]').click(function(){
        // code to cancel changes
        return false;
    });
</script>

<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>

作为一个额外的好处,有了这个,您可以摆脱锚标签而只需使用按钮。

于 2010-07-23T02:50:37.797 回答
1

在不设置type属性的情况下,您也可以falseOnClick处理程序返回,并将onclick属性声明为onclick="return onBtnClick(event)".

于 2018-03-18T22:11:09.910 回答
-4
  <form class="form-horizontal" method="post">
        <div class="control-group">

            <input type="text" name="subject_code" id="inputEmail" placeholder="Subject Code">
        </div>
        <div class="control-group">
            <input type="text" class="span8" name="title" id="inputPassword" placeholder="Subject Title" required>
        </div>
        <div class="control-group">
            <input type="text" class="span1" name="unit" id="inputPassword" required>
        </div>
            <div class="control-group">
            <label class="control-label" for="inputPassword">Semester</label>
            <div class="controls">
                <select name="semester">
                    <option></option>
                    <option>1st</option>
                    <option>2nd</option>
                </select>
            </div>
        </div>

        <div class="control-group">
            <label class="control-label" for="inputPassword">Deskripsi</label>
            <div class="controls">
                    <textarea name="description" id="ckeditor_full"></textarea>
 <script>CKEDITOR.replace('ckeditor_full');</script>
            </div>
        </div>



        <div class="control-group">
        <div class="controls">

        <button name="save" type="submit" class="btn btn-info"><i class="icon-save"></i> Simpan</button>
        </div>
        </div>
        </form>

        <?php
        if (isset($_POST['save'])){
        $subject_code = $_POST['subject_code'];
        $title = $_POST['title'];
        $unit = $_POST['unit'];
        $description = $_POST['description'];
        $semester = $_POST['semester'];


        $query = mysql_query("select * from subject where subject_code = '$subject_code' ")or die(mysql_error());
        $count = mysql_num_rows($query);

        if ($count > 0){ ?>
        <script>
        alert('Data Sudah Ada');
        </script>
        <?php
        }else{
        mysql_query("insert into subject (subject_code,subject_title,description,unit,semester) values('$subject_code','$title','$description','$unit','$semester')")or die(mysql_error());


        mysql_query("insert into activity_log (date,username,action) values(NOW(),'$user_username','Add Subject $subject_code')")or die(mysql_error());


        ?>
        <script>
        window.location = "subjects.php";
        </script>
        <?php
        }
        }

        ?>
于 2017-12-07T18:36:48.110 回答