Не удается получить размытие события с asp.net mvc 3

Привет, ребята, я изо всех сил пытался получить размытие события от строго типизированного представления asp.net mvc 3. Это то, что я пробовал.

<table>
 <td class="contentTable">
     @Html.LabelFor(model => model.Ciudad)
  </td>
  <td>
     @Html.EditorFor(model => model.Ciudad, new{id= "mapSearch"})
     @Html.ValidationMessageFor(model => model.Ciudad)
 </td>
</table>


<script type="text/javascript">
    $(function () {
        $('#mapSearch').blur(function () {
           myFunction();
       });
});
</script>   

myFunction уже является функцией, которую я использую с помощью кнопки, но теперь я хотел, чтобы она срабатывала по событию. Я также попробовал с:

@Html.EditorFor(model => model.Ciudad, new{onblur= "mapSearch();"})

Спасибо

2 ответа

Решение

Попробуй это. Измените свою разметку вида, как это

 @Html.EditorFor(model => model.Ciudad)

и такой сценарий

$(function () {
    $('#Ciudad').blur(function () {
           myFunction();
    });
});

Предполагая, что у вас есть функция JavaScript, называемая myFunction существовать

function myFunction() {
        console.debug("myFunction Called");
       //Some other awesome stuff here
}

Пример JsFiddle: http://jsfiddle.net/C3wMY/4/

EditorFor не имеет переопределения, которое принимает атрибуты html. На уровне "EditorFor" он не знает, какие элементы могут быть вставлены или как получить к ним атрибуты. Вам нужно использовать TextBoxFor, DropDownListFor или другой помощник, который добавляет определенный элемент. Или вам нужно добавить атрибуты в шаблон вашего редактора, если вы используете этот редактор. Вы можете передавать атрибуты в свой шаблон, если хотите, но как часть модели (или ViewBag, или другими способами).

Другие вопросы по тегам