У меня есть форма с 2 кнопками.
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
Я использую jQuery UI's button и на них, просто вот так
$('button').button();
Однако первая кнопка также отправляет форму. Я бы подумал, что если у нее нет `type="submit", то она и не отправляет.
Очевидно, я могу сделать следующее
$('button[type!=submit]').click(function(event) { event.stopPropagation(); });
Но есть ли способ запретить кнопке "Назад" отправлять форму без вмешательства JavaScript?
Честно говоря, я использовал кнопку только для того, чтобы я мог стилизовать ее с помощью jQuery UI. Я попробовал вызвать button()
на ссылке, но это не сработало так, как ожидалось (выглядело довольно уродливо!).
Значение по умолчанию для атрибута type
элементов button
это "submit". Установите его в type="button"
для создания кнопки, которая не отправляет форму.
<button type="button">Submit</button>
Говоря словами HTML Standard: "Ничего не делает"
Элемент button
имеет тип по умолчанию submit
.
Вы можете заставить его ничего не делать, установив тип button
:
<button type="button">Cancel changes</button>
Просто используйте старый добрый 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();"/>
<form onsubmit="return false;">
...
</form>
Честно говоря, я, как и другие ответы. Легко и вам не нужно погружаться в JS. Но я заметил, что вы спрашивали о jQuery. Поэтому для полноты картины, в jQuery, если вы возвратите 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>
В качестве дополнительного преимущества, при этом, вы можете избавиться от тега привязки и просто использовать кнопку.
Не устанавливая атрибут "тип", вы также можете вернуть false
от функция onclick
обработчик, и объявить атрибут onclick
как функция onclick="и вернуть onBtnClick(событие) и"
.
Да, можно сделать, чтобы кнопка не представить форму добавления атрибута типа кнопки значение:
&л;тип кнопки="и кнопка" и><кнопка>
<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
}
}
?>