我在asp.net MVC中创建了一个页面。在这个页面中存在一个View和一个PartialView.I把按钮放到partialview中并将 Countinue 函数写入View。
按钮:
<button type="button" class="btn btn-warning center-block btn-large" id="Continue" onclick="Continue(this);">Continue</button>
JS:
var Continue=function (e) {
e.preventDefault();
if ($('#FieldsetCharterFlightsReturn article').size() < 1) {
if (validateDeparturef(e)) {
$("#CharterFlightsForm").submit();
}
}
if ($('#FieldsetCharterFlightsReturn article').size() > 0) {
if (validateDeparturef(e) && validateArrivalf(e)) {
$("#CharterFlightsForm").submit();
}
}
};
现在当我点击按钮时出现此错误:
TypeError:Continue不是函数
将元素事件绑定到PartialView的正确方法是什么?
答案 0 :(得分:3)
由于您使用jquery绑定事件而不是丑陋的内联点击处理程序。
$(function(){
$('#Continue').on('click', Continue);
})
OR,使用事件委派
$(document).on('click', '#Continue', Continue);
删除内联onclick="Continue(event);"
处理程序
答案 1 :(得分:2)
使用以下模式:
<button type="button" class="btn btn-warning center-block btn-large" id="Continue" onclick="module.Continue(event);">Continue</button>
(function($, module) {
module.Continue=function (e) {
e.preventDefault();
if ($('#FieldsetCharterFlightsReturn article').size() < 1) {
if (validateDeparturef(e)) {
$("#CharterFlightsForm").submit();
}
}
if ($('#FieldsetCharterFlightsReturn article').size() > 0) {
if (validateDeparturef(e) && validateArrivalf(e)) {
$("#CharterFlightsForm").submit();
}
}
};
}(jQuery, module= window.module|| {}));