2013-07-09 3 views
1

Я пытаюсь заставить свою программу создать новую кнопку в форме submit. Я знаю, что я сделал что-то неправильно, но не знаю, как это исправить. Вот мой код:Javascript new button on form submit

$("#searches").append('<button id="recent-searches">' + textbox + '</button>') 

потом на меня:

$("#recent-searches").on('submit', function() { 

Я думаю, что вторая часть кода, где я пошло не так. Любая помощь была бы потрясающей.

Спасибо!

ответ

1

Там нет submit события на кнопку, вы имели в виду click или отправить мероприятие в форму?

Попробуйте

$("#recent-searches").on('click', function() { // if you are biding this after appending the button. 

еще

$(document).on('click',"#recent-searches" function() { // if you are binding this prior to appending the button to the DOM. use $("#searches").on(... if that element is available all the time in DOM. 

если #searches является формой, то вы должны сделать следующее:

$("#searches").on('submit', function(){... 
0
$("#recent-searches").on('submit', function() { 

Это собирается связать с элементом, соответствующим идентификатор recent-searches, что событие. Если элемент не существует, то jQuery ничего не сделает. Вы должны связать это событие для всего документа (или родитель, который будет содержать этот элемент с идентификатором recent-searches) и указать идентификатор, например:

$(document).on('click', '#recent-changes', function() { 

В этом случае я думаю, что что-то подобное должно работать :

$('#searches').on('click', '#recent-changes', function() { 

С #recent-changes прилагается к этому элементу.

Помните, что submit событие не уволит при нажатии на эту кнопку, потому что это не кнопка отправки, вы можете использовать этот код:

$("#searches").append('<input type="submit" id="recent-searches" value="' + textbox + '" />'); 
0

Вы создаете кнопку #recent-searches, которая будет получать, среди прочего , событие click, когда вы нажмете на него. Однако он не срабатывает в случае событий submit, потому что они предназначены только для form элементов при нажатии на элемент input типа submit.

Таким образом, вы бы иметь форму, скажем:

<form id="searches"> ... </form> 

Где вы Добавляя кнопку, может быть так:

$("#searches").append('<input type="submit" id="recent-searches">' + textbox + '</input>'); 

, а затем вы могли бы сделать:

$("#searches").on("submit", function (e) { ... }); 

Или вы также можете получить свой button, но связать событие click, а не так:

$("#recent-searches").on("click", function (e) { ... });