2010-10-04 5 views
2

Следующая инструкция:ASP.NET MVC EditorFor пользовательских Javascript

<%= Html.EditorFor(model => model.Material.Serial) %> 

Формирует следующий код;

<div class="editor-field"> 
    <input type="text" value="" name="Material.Serial" id="Material_Serial" class="input-validation-error"> 
    <span id="Material_Serial_validationMessage" class="field-validation-error">Debe ingresar un serial</span> 
</div> 

Я хочу добавить onkeypress Javascript атрибут к моему входу через EditorFor заявление, я попытался сделать следующее:

<%= Html.EditorFor(model => model.Material.Serial, new{ onkeypress = "return disableEnterKey(event)"})%> 

Но это не работает.

ответ

8

Его трудно передать дополнительные атрибуты шаблонов EditorFor, но в качестве альтернативы та же функциональность может быть реализована с помощью JQuery или что-то подобное:

$('#Material_Serial').keypress(function(event) { 

    disableEnterKey(event); 

}); 
+0

Хорошо, но как вы убедитесь, что этот бит кода всегда вставляется в виду, когда есть Material.Serial поле в модели? – fretje

2

Используйте следующий .... обратите внимание на последнюю часть в коде.

@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control", @onchange="alert('Hello World')" } }) 

HTML Генерация выше будет

<input class="form-control text-box single-line" data-val="true" data-val-length="The field Title must be a string with a maximum length of 255." data-val-length-max="255" data-val-required="The Title field is required." id="Title" name="Title" onchange="alert(&#39;Hello World&#39;)" type="text" value="" /> 
Смежные вопросы