2017-04-26 14 views
-1

私は、読み取り専用の属性を持つテキストボックスを持つフォームを持っています。これは大きな問題ではありませんが、私は尋ねると思ったので、ユーザーがそれを選択してカーソルを置くことができないようにテキストボックスを作る方法はありますか?ReadOnlyテキストボックスを選択不可にする

disabled属性はそれを行いますが、そのテキストボックスはフォームとともに送信されません。

このための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> 

SNIPPET。

+0

@StephenMueckeああそうです。ありがとう、返信として投稿し、私は受け入れるでしょう –

答えて

-1

私を含めない点はありません

// 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" } }) 

注意をレンダリングすることができます答えとしてスティーブンのコメントを使用して、それが動作します。

サーバーに送信するための非表示の入力フィールドを作成しましたが、ユーザーには非表示の入力フィールドが保持している値の無効なテキストボックスしか表示されません。

0

これを試してください。 私のために働いています。 @ Html.EditorForをこのコントロールで置き換えます。

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

これは、@ Html.EditorForを使用するとページ上でレンダリングするものです –

0

使用インラインonkeydown="return false;"属性

またはあなたが

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

javascriptのソリューションをしたい場合は任意のjavascriptのための必要はありません。あなただけのプロパティに隠された入力を含む、その後、(テキストボックスのように見えるようにスタイル要素またはテキストだけ)無効にテキストボックス@Html.ValidationMessageFor()

関連する問題