关于javascript:我可以让

Can I make a

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

1
2
3
<button>Cancel changes</button>

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

我也使用jQuery UI的按钮,就像这样

1
$('button').button();

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

显然我可以做到这一点

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

但有没有办法可以阻止后退按钮提交表单而无需JavaScript干预?

说实话,我只使用了一个按钮,所以我可以使用jQuery UI来设置它。 我尝试在链接上调用button()并且它没有按预期工作(看起来很丑陋!)。


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

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

用HTML标准来说:"什么都不做。"


button元素的默认类型为submit

您可以通过设置button的类型使其无效:

1
<button type="button">Cancel changes</button>


只需使用旧的HTML:

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

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

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

或者,如果您决定要javascript提供其他功能:

1
<input type="button" value="Cancel" onclick="javascript: someFunctionThatCouldIncludeRedirect();"/>


1
2
3
<form onsubmit="return false;">
   ...
</form>

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

请看这里的示例(以及更多好东西)。这里也是文档。

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

1
2
3
4
5
6
7
8
9
<script type="text/javascript">
    $('button[type!=submit]').click(function(){
        // code to cancel changes
        return false;
    });


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

另外一个好处是,你可以摆脱锚标签,只需使用按钮即可。


如果不设置type属性,也可以从OnClick处理程序返回false,并将OnClick属性声明为onclick="return onBtnClick(event)"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  <form class="form-horizontal" method="post">
       

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

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



       
       

        <button name="save" type="submit" class="btn btn-info"><i class="icon-save"> Simpan</button>
       
       
        </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){ ?>
       
        alert('Data Sudah Ada');
       
        <?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());


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

        ?>