2012-10-11 87 views
2

有一個奇怪的問題,我希望人們可以擺脫一些像。 當我使用jQuery Mobile MVC 4項目中的複選框和單選按鈕創建表單時,如果使用Razor語法根據視圖模型吐出控件,例如@ Html.RadioButtonFor等,而不是隻寫標準輸入類型=「收音機」,jQuery Mobile不會將樣式應用於元素。包括屏幕截圖和代碼差異。這是否與控件呈現的方式有關?在視圖和部分視圖中都會發生。Razor語法導致jQuery Mobile表單元素丟失樣式

我改變了第一組單選按鈕來證明這一點。如果我將整個表單更改爲Razor HTML助手,我會在所有控件中獲得相同的結果。

非剃刀: Non Razor 剃刀: Razor

非剃刀代碼:

<fieldset data-role="controlgroup" data-type="vertical" class="recurrencyArea"> 
           <legend></legend> 
           <input type="radio" data-theme="b" name="Period" id="Daily" value="Daily" checked="checked" /> 
           <label for="Daily">Daily</label> 

           <input type="radio" data-theme="b" name="Period" id="Weekly" value="Weekly" /> 
           <label for="Weekly">Weekly</label> 

           <input type="radio" data-theme="b" name="Period" id="Monthly" value="Monthly" /> 
           <label for="Monthly">Monthly</label> 
          </fieldset> 

剃刀代碼:

<fieldset data-role="controlgroup" data-type="vertical" class="recurrencyArea"> 
           <legend></legend> 
           @Html.LabelFor(x=>x.Period, "Daily") 
           @Html.RadioButtonFor(x => x.Period, "Daily", new { data_theme = "b", @Checked = "checked", id = "Daily" }) 

           @Html.LabelFor(x=>x.Period, "Weekly") 
           @Html.RadioButtonFor(x => x.Period, "Weekly", new { data_theme = "b", @Checked = "checked", id = "Weekly" }) 

           @Html.LabelFor(x=>x.Period, "Monthly") 
           @Html.RadioButtonFor(x => x.Period, "Monthly", new { data_theme = "b", @Checked = "checked", id = "Monthly" }) 
          </fieldset> 

是jQuery的後產生的剃刀HTML移動腳本已經在頁面上運行了?

任何有任何有幫助的想法/或任何人誰​​可以發現任何愚蠢的錯誤將是一個英雄!

非常感謝, 基督教

+0

我看到的唯一區別是您在Checked屬性上使用了大寫字母C.但這可能沒有任何區別。在任何腳本運行之前總是生成html。 – David

+1

你爲什麼要檢查他們三個?也許這不適用於jQuery移動? – David

+0

大衛,你發現這個錯誤是正確的,只是壞的複製和粘貼,但不幸的是這不是問題。 – Christian

回答

2

我不是太熟悉jquerymobile,但對毛刺我所看到的,是對HTML代碼,你必須看起來像這樣的標籤:

<label for="Daily">Daily</label> 

而剃刀代碼將輸出的標籤是這樣的:

<label for="Period">Daily</label> 

的「for」屬性是錯誤的,在剃刀代碼的sceanrio,也許jque手機是否對此敏感?

+0

非常好,這是一個問題,同時由同事諷刺地發現!非常感謝。 – Christian

+1

該死的你,媽媽你偷了我的答案! :) –