我正在尝试让我的程序在表单提交上创建一个新按钮。我知道我做错了什么但不知道如何解决它。这是我的代码:
$("#searches").append('<button id="recent-searches">' + textbox + '</button>')
然后我有:
$("#recent-searches").on('submit', function() {
我认为代码的第二部分是我出错的地方。任何帮助都会很棒。
谢谢!
答案 0 :(得分: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(){...
答案 1 :(得分:0)
$("#recent-searches").on('submit', function() {
这将绑定到与该事件的id recent-searches
匹配的元素。如果该元素不存在则jQuery将不执行任何操作。您必须将事件绑定到整个文档(或包含ID为recent-searches
的元素的父级)并指定ID,如下所示:
$(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 + '" />');
答案 2 :(得分: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) { ... });