有条件的点击方法不起作用

在此之后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

回到顶部