我将以稍微不同的方式重新提出这个问题。
假设我在页面上有2个或更多[相同]部分视图。
在此PartialView上有一个文本框和一个按钮。
单击按钮,我需要获取文本框的内容并执行Json回发,执行一些操作并返回结果集。
我遇到的问题是,我可以在第一部分视图中实现这一切,但不能用于任何后续部分。
事件附加到每个按钮,但是当我尝试访问文本框时,我似乎只获得了第一个文本框,而不是使用按钮获得PartialView中的文本框。
在下面的代码中,我有两次部分视图。所以文本框和按钮的两个实例。
Json代码附加到每个提交按钮,但是当我访问文本框时,我只能从第一个局部视图中获取文本。
一些代码;
部分视图:
<%= Html.TextArea("MyTextBox", Model.Text, 3, 50, new { onkeyDown="return CheckInputLength(this)" })%>
<input id="submitText" name="submitText" type="submit" value="Add text" class="clsTest" />
一些Json代码:
$(document).ready(function() {
$(".clsTest").each(
function() {
$(this).unbind("click").click(function(evt) {
var commentText = jQuery.trim($("#MyTextBox").val());
答案 0 :(得分:1)
嗯,问题是您有多个具有相同ID(MyTextBox
)的textarea。确保您的textareas具有不同的ID。
<%= Html.TextArea("MyTextBox", Model.Text, 3, 50,
new { onkeyDown="return CheckInputLength(this)",
id = "textBox-" + Model.ID })%>
然后,我建议你有一个JS函数,它将textarea的ID作为参数:
function postComment(id) {
var commentText = jQuery.trim($(id).val());
}
让你的提交按钮调用该功能:
<input id="submitText" name="submitText" type="submit" value="Add text"
class="clsTest" onclick="postComment('textBox-<%=Model.ID%>')" />