От defualt, button
elements являются type="submit"
. Если вы не хотите, чтобы быть кнопка отправить, используйте type="button"
вместо:
<button type="button" id="edit" name="Edit" value="Edit" class="edit btn btn-info"onclick="editBtnClicked('<%=id%>');">
Если по какой-то причине вы хотите, чтобы она по-прежнему кнопку отправки, но вы хотите, чтобы предотвратить подачу: В ваш атрибут onclick
, передать event
в вашей функции:
<button id="edit" name="Edit" value="Edit" class="edit btn btn-info"onclick="editBtnClicked(event, '<%=id%>');">
Это event
будет существовать в контексте созданного для этого вызова, либо как глобальная (Chrome, IE) или в качестве локального (Firefox).
Тогда в обработчике, используйте preventDefault
:
function editBtnClicked(event, id) {
$.Event(event).preventDefault(); // Note the jQuery event wrapper
console.log("Edit Section");
$(".showData").css("display", "none");
$(".showInputField").css("display", "block");
}
То есть, я бы, вероятно, изменить полностью и использовать делегирование событий вместо атрибута onclick
.
На некоторых контейнерах всех этих кнопок будет:
$("selector for the container").on("click", "button.edit", editBtnClicked);
... и при выводе их (обратите внимание, я удалил id
— вы сказали, что это цикл, вы не можете иметь то же самое id
более чем один раз):
<button type="button" type="button" value="Edit" class="edit btn btn-info" data-id="'<%=id%>'">
И в функции:
function editBtnClicked() {
var id = $(this).attr("data-id"); // Get the ID
console.log("Edit Section");
$(".showData").css("display", "none");
$(".showInputField").css("display", "block");
}
Я могу только догадываться, потому что слишком много информации отсутствует ..., что '' является частью формы. Если в элементе '' не существует 'type', он действует как кнопка отправки. Просто добавьте кнопку 'type =" ", и все будет хорошо. – Andreas
И вы должны избегать использования атрибутов 'onXXX' для назначения обработчиков событий. Вместо этого используйте ['.on()'] (http://api.jquery.com/on/).«Id» может быть добавлен как атрибут 'data-' * ', который затем будет доступен с [' .data() '] (http://api.jquery.com/data/) – Andreas