我在当用户想要预览它由路线叫做发票的功能做表单验证回应按钮(实际上,按钮和一个href)的形式:骨干路由点击并不会不第2次尝试
<div class="span8 alignRight">
<button id="saveInvoiceDraft" type="submit" class="btn btn-warning">Save Draft</button>
<a id="previewInvoice" class="btn btn-primary">Preview & Send</a>
</div>
当创建该发票,对于标签的URL被设定为:
var url = '#preview';
$('#previewInvoice').attr('href',url);
最后,当我点击“预览&发送”按钮时,下面的previewInvoice(invoiceid)函数将运行,正确捕获缺少的一个表单域并显示错误消息。在这一点上,即使我填写表单字段,该按钮已经死了,不再回应。但是,“保存草稿”按钮完美地工作,并且与previewInvoice()函数中的模拟代码相同。
我知道可能有更好的方法来做到这一点,但我是按照这种方式,它是在我继承的应用程序的另一部分完成的。其实,当我输入这个时,我想知道,因为sendDraft()函数工作,它的按钮和previewInvoice()函数没有,它是一个href的事实可能与它有关。
function previewInvoice(invoiceid) {
var invoice = new Invoice({"invoiceid": invoiceid});
invoice.set({"invoiceid": invoiceid,"invoicestatus": "draft"});
formGetter(invoice);
validateInvoiceForm(invoice);
if (window.errors.length == 0) {
//business logic here
if (window.panel == undefined) {
// business logic here
}
else {
//save business logic here
}
}
else {
showInvoiceErrors();
}
}
任何想法为什么按钮不再响应?我在控制台中看不到任何错误。我在函数中添加了一个consol.log以显示不同表单元素的值,并且它在控制台中首次显示,但是如果我更改数据并再次单击该按钮,那么该日志不会更新,对我而言是另一个线索,它只是不开火。
谢谢。这有助于我更多地理解它。奇怪的是,此页面上的另一个按钮用于保存草稿按我希望的方式工作,并且没有散列更改。我会尝试你的建议,并让你知道它是如何发生的。我们也在使用视图。 – Dan