2009-07-27 4 views
1

이 질문을 약간 다른 방식으로 다시 묻겠습니다.Json 및 Multiple PartialViews

페이지에 [동일한] 부분보기가 2 개 이상 있다고합니다.

이 PartialView에는 텍스트 상자와 버튼이 있습니다.

버튼을 클릭하면 텍스트 상자의 내용을 가져 와서 Json 포스트 백을 수행하고 몇 가지 작업을 수행 한 다음 결과 세트를 반환해야합니다.

내가 가진 문제는 모든 PartialView에 대해이 모든 작업을 수행 할 수 있지만 후속 작업에는 사용할 수 없다는 것입니다.

이벤트는 각 버튼에 붙어 있지만 텍스트 상자에 액세스하려고하면 버튼이있는 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()); 

답변

1

음, 문제는 동일한 ID (MyTextBox)와 하나 이상의 텍스트 영역을 가지고있다. 텍스트 영역마다 다른 ID가 있는지 확인하십시오.

<input id="submitText" name="submitText" type="submit" value="Add text" 
    class="clsTest" onclick="postComment('textBox-<%=Model.ID%>')" /> 
+0

감사 :

function postComment(id) { var commentText = jQuery.trim($(id).val()); } 

을 그리고있는 당신의 전화를하는 기능을 버튼을 제출

<%= Html.TextArea("MyTextBox", Model.Text, 3, 50, new { onkeyDown="return CheckInputLength(this)", id = "textBox-" + Model.ID })%> 

그럼, 내가 무엇을 제안하면 매개 변수로 텍스트 영역의 ID를 취하는 JS 기능을 가지고입니다 çağdaş. 오늘 밤 그걸 시도 할거야. 꽤 단순해야만한다는 것을 알았습니다. – griegs