尝试调用提交函数但表单ID未知。表单id将是“#viewemails_0”,但0可以是任何数字。
这里我对表单ID进行了硬编码。这有效但需要更具动态性的东西。
void LinkedList::removeDuplicates()
{
Node* traverse = m_front;
Node* duplicate = nullptr;
if (!isEmpty())
{
Node* nextNode = traverse->getNext();
while(nextNode != nullptr)
{
if (traverse->getValue() == nextNode->getValue())
{
std::cout << "Found duplicate\n";
duplicate = nextNode;
nextNode = nextNode->getNext();
delete duplicate;
duplicate = nullptr;
traverse->setNext(nextNode);
continue; // Don't advance again, we already skipped an element.
}
traverse = nextNode;
nextNode = nextNode->getNext();
}
}
}
我试过这样的事情,但页面刷新保持firefox。我相信它没有正确地解决这个问题。
以下是我尝试但不工作的内容
窗口警报有效,我可以正确查看表单ID。
$(document).ready(function () {
$("#viewemails_0").submit(function (e) {
//Stops the submit request
e.preventDefault();
});
});
这是我的HTML / PHP表单
function viewemails(obj) {
var formname = obj.name;
alert(formname);
$("#"+formname).submit(function (e) {
e.preventDefault();
});
}
答案 0 :(得分:2)
您正在将event listeners与显式事件回调混合(即onsubmit
)。使用其中一种,我推荐前者。
当发生onsubmit
表达式时,表单已经提交,因此在此时设置 submit 事件监听器为时已晚。另外,看到onsubmit="return ..."
,viewemails
函数应该返回一个布尔值。
要仅使用事件侦听器,您只需使用类来标识表单,即
<form id="viewemails_<?= $i ?>" class="whatever"...
(注意,不需要onsubmit
)和你的JS
jQuery(function($) { // document ready handler
$('form.whatever').on('submit', function(e) {
e.preventDefault();
var formId = this.id;
// and so on
});
});
或者如果您想使用事件委托(如果在加载页面后添加表单,或者您不想使用文档 ready 处理程序)
jQuery(document).on('submit', 'form.whatever', function(e) {
e.preventDefault();
var formId = this.id;
// etc
});