2017-04-26 64 views
-1

我有一個帶有隻讀屬性的文本框。這不是什麼大問題,但我想我會問,那麼是否有辦法制作該文本框,以便用戶無法選擇它並將其光標放在該文本框中?使只讀文本框不可選

被禁用的屬性會這樣做,但是那個文本框並沒有被提交到表單中。

是否有js/jquery解決方案?

代碼片段


<form> 
    <div class="col-md-9"> 
     @Html.EditorFor(model => model.Time, new { htmlAttributes = new { @class = "form-control clear-textbox create-form-txtbox time-txtbox", @readonly = "readonly" } }) 
     @Html.ValidationMessageFor(model => model.Time, "", new { @class = "text-danger" }) 
    </div> 

    <input type="submit" value="Submit" /> 
</form> 

任何幫助表示讚賞。

+0

@StephenMuecke啊,這工作。謝謝,發佈爲答案,我將接受 –

回答

-1

我已經使用斯蒂芬的評論作爲答案,它的工作原理。

我已經創建了一個隱藏的輸入字段來提交給服務器,但用戶將只能看到隱藏的輸入字段持有的值的禁用文本框。

0

試試這個。 它爲我工作。 用此控件替換@ Html.EditorFor。

<input type="text" value="@Model.Time" id="Time" name="Time" class="form-control" readonly /> 
+0

這就是使用@ Html.EditorFor在頁面上呈現的內容 –

0

使用內嵌onkeydown="return false;"屬性

,或者如果你想有一個JavaScript的解決方案

$('#someId').keydown(function(e) { 
    e.preventDefault(); 
    return false; 
}); 
0

沒有必要對任何JavaScript。你可以只包括屬性的一個隱藏的輸入,然後呈現禁用文本框(或僅僅是文本風格的元素,看起來像一個文本框)

// hidden input so the value is submitted 
@Html.HiddenFor(m => m.Time) 
// disabled textbox to display the value and prevent any interaction 
@Html.EditorFor(m => m.Time, new { htmlAttributes = new { disabled = "disabled, @class = "form-control clear-textbox create-form-txtbox time-txtbox" } }) 

注意沒有點包括@Html.ValidationMessageFor()