2009-07-27 18 views
1

私はこの質問を少し違った方法で再質問します。Jsonと複数のパーシャルビュー

ページ上に[同じ]部分ビューが2つ以上あるとします。

このPartialViewには、テキストボックスとボタンがあります。

ボタンをクリックすると、テキストボックスの内容を取得し、Jsonポストバックを行い、いくつかのことを行い、結果セットを返す必要があります。

私が問題にするのは、これがすべて第1のPartialViewでは実行できるが、それ以降のものではないということです。

イベントは各ボタンに付いていますが、テキストボックスにアクセスしようとすると、最初のテキストボックスが表示され、ボタン付きのPartialViewには表示されません。

以下のコードでは、パーシャルビューを2回表示しています。したがって、テキストボックスとボタンの2つのインスタンス。

各提出ボタンには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が異なることを確認してください。

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

その後、私がお勧めすると、パラメータとしてテキストエリアのIDを取るJS機能を持っていることです。

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%>')" /> 
+0

感謝をçağdaş。今夜それを試みます。かなりシンプルなものでなければならないことが分かっていました。 – griegs

関連する問題