喂,
我有以下jquery代码用于调用返回使用Partial View创建的html的ASP.NET MVC控制器方法。
$("form[action$='ShowProperties']").submit(function() {
$.post($(this).attr("action"), $(this).serialize(), function(response) {
$(this).children("div.serviceproperties").html(response);
// $("div.serviceproperties").html(response);
});
return false;
});
渲染的html如下所示:
<ul>
<li class="serviceactionitem">
<form method="post" action="/Service/ShowProperties">
<input type="submit" value="Show General" name="[Show]"/>
<input id="id" type="hidden" value="1" name="id"/>
<input id="serviceitem" type="hidden" value="general" name="serviceitem"/>
<div class="serviceproperties"> </div>
</form>
</li>
<li class="serviceactionitem">
<form method="post" action="/Service/ShowProperties">
<input type="submit" value="Show Specific" name="[Show]"/>
<input id="id" type="hidden" value="1" name="id"/>
<input id="serviceitem" type="hidden" value="specific" name="serviceitem"/>
<div class="serviceproperties"> </div>
</form>
</li>
响应是html,需要在表单元素内部的div元素内设置。我在页面上有几个表单元素,我不知道如何在正确的表单内更新div。注释代码当然会更新页面上每个表单的div。
主要的是$(this)不返回表单元素,这可能是正常的。所以我需要在处理响应的函数内部处理正确的表单元素,并在其中查找和更改div。
谢谢
答案 0 :(得分:1)
只需重新选择表格:
$("form[action$='ShowProperties'] div.serviceproperties").html(response);
首先捕获元素:
$("form[action$='ShowProperties']").submit(function() {
var $form = $(this);
$.post($(this).attr("action"), $(this).serialize(), function(response) {
$("div.serviceproperties",$form).html(response);
});
return false;
});