2013-08-28 58 views
0

有些人之前在所有形式的輸入開始大喊大叫,我知道有類似的問題,但他們所有的處理單個條目...重新顯示後

我有很長的表單,並且希望使用一個通用處理重新顯示數據的方法。 請注意:這是使用razor2意見中的一個字段的

例如asp.Net MVC 4應用程序,

<div class="control-group"> 
    <label class="control-label">@Html.LabelFor(m => m.Name) 
     <span class="required">*</span> 
    </label> 
    <div class="controls"> 
     @Html.TextBoxFor(m => m.Name, new { @name = "nameInput" }) 
    </div> 
</div> 

我想到的,只是一個ID添加到每個文本框...的 例如何可能在確認視圖中顯示..

<div class="control-group"> 
    <label class="control-label">Name:</label> 
    <div class="controls"> 
     <span class="text display-value" data-display="nameInput"></span> 
    </div> 
</div> 

然後使用數據顯示與該ID渲染值...

jQuery的,我認爲會解決它......

var displayConfirm = function() { 
    $('.display-value', form).each(function(){ 
     var input = $('[name="'+$(this).attr("data-display")+'"]', form); 
     if (input.is(":text") || input.is("textarea")) { 
      $(this).html(input.val()); 
     } else if (input.is("select")) { 
      $(this).html(input.find('option:selected').text()); 
     } 
    }); 
} 

可惜,這似乎並沒有工作正常.... 任何人都可以指出/再解決這個問題?

+0

在這種情況下,這可能不會造成世界的不同。但是,我遇到了這種情況下對我來說的情況。你在哪裏定義'var input ='...嘗試'var $ input ='...然後分別改變它,所以'input'是'$ input'。再說一遍,不是說它會幫助100%,甚至根本就不會幫助,但出於某種原因,我不記得我知道有些情況下,使用'$'和var有助於處理jQuery。我認爲它擴展它在某種意義上或某種效果 – chris

+0

也取決於您的jQuery版本嘗試'.prop'而不是'.attr'或者您可以嘗試'.data'。你也可以嘗試'.display-value:input')。each('...和'$(this)'而不是'$('[name =''+ $(this).attr(「data-display 「)+'」]',form);' – chris

+0

非常感謝克里斯,但是上面沒有一個有什麼影響......我對這個方法提出了警告,只是爲了確保它正在發射,當它應該...... .so回到繪圖板我去..... – mkell

回答

1

明白了,我需要在模型中使用名稱,而不是分配名稱。

從「頁面查看源代碼」中獲得正確的名稱,並將該值簡單地插入到數據顯示標籤中。

+0

做得好的男人。:) – Rex

相關問題