有条件的点击方法不起作用
在此之后tutorial我有一个向列表添加行的Ajax调用,它可以正确地将新的部分视图添加到现有项目列表中。有条件的点击方法不起作用
@model List<FTD.Models.Rate> @using (Html.BeginForm("EditRates","Maintenance"))
{
<div id="editorRows">
@foreach (FTD.Models.Rate _rate in Model)
{
Html.RenderPartial("_Rate",_rate);
}
</div>
@Html.ActionLink("Add Another", "BlankEditorRow", null, new { id = "addItem" })
<br />
<input id="Edit" name="submit" type="submit" value="Edit" />
}
<script type="text/javascript">
$("#addItem").click(function() {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#editorRows").append(html); }
});
return false;
</script>
我想将列表限制为5行。我试图在$ .ajax调用周围包装一个if,但是这会导致只显示该内容,而不是向当前页面添加一个新的部分,我将其重定向到BlankEditorRow。
$("#addItem").click(function() { if ($('.editorRow').length < 5) {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#editorRows").append(html); }
});
}
return false;
});
控制器动作
public ActionResult BlankEditorRow() {
if (Request.IsAjaxRequest())
return PartialView("_Rate", new Rate());
return View("_Rate", new Rate());
}
_Rate部分
@model FTD.Models.Rate <div class="editorRow">
@Html.TextBoxFor(m => Model.Date, new { @class = "date" })
@Html.ValidationMessageFor(m => Model.Date)
@Html.TextBoxFor(m => Model.InterestRate)
@Html.ValidationMessageFor(m => Model.InterestRate)
<a href="#" class="deleteRow">delete</a>
</div>
回答:
我相信你想$('.editorRow').length < 5
- 即.length
属性,而不是.length()
;
回答:
现在你可以看到在这条线上的JavaScript控制台的错误:
if ($('.editorRow').length() < 5) {
length
是一个属性,而不是功能。所以:
if ($('.editorRow').length < 5) {
为了调试这样的事情,没有什么比using a debugger,并且具有控制台打开,确保浏览器设置为大家介绍一下错误,等等等等的工具都在那里使用。
以上是 有条件的点击方法不起作用 的全部内容, 来源链接: utcz.com/qa/257292.html