2014-11-11 4 views
1

У меня есть редактор шаблонов с dropdownlistfor:DropDownListFor OnChange JQuery не работает через код

@Html.DropDownListFor(model => model.task_state_id, 
    new SelectList((System.Collections.IEnumerable)ViewData["TaskStates"], "task_state_id", "state"), 
      new { @Id = "ddlState" }) 

и на мой взгляд, у меня есть этот скрипт:

<script type="text/javascript"> 
$(this.document).ready(function() { 
    $('#ddlState').change(function() //wire up on change event of the 'country' dropdownlist 
    { 
     var selection = $('#ddlState').val(); //get the selection made in the dropdownlist 
     alert("ho"); 
     if (selection === 4) { 
      alert("hi"); 
      $('#CompletionDate').val() = @DateTime.Now.Date; 
     } 
     var completion = $('#CompletionDate').val(); 
     alert(completion); 
    }) 
}); 
</script> 

По какой-то причине, этот сценарий будет не запускать и не отображать никаких предупреждений. Когда я удаляю весь код и просто получаю alert("Hello World!") или alert(selection), он без проблем отобразит предупреждение. Но почему он не отображает ничего, когда я делаю свой настоящий код?

Для записи файл сценария находится в файле Details.cshtml, а раскрывающийся список - в шаблоне редактора.

UPDATE 1

Рабочий сценарий выглядит так:

@section Scripts{ 

<script type="text/javascript"> 
$(this.document).ready(function() { 
    $('#ddlState').change(function() //wire up on change event of the 'country' dropdownlist 
    { 
     var selection = $('#ddlState').val(); //get the selection made in the dropdownlist 
     if (selection == '4') { 
      $('#CompletionDate').val('@DateTime.Now.Date'); 
     } 
     var completion = $('#CompletionDate').val(); 
     alert(completion); 
    }) 
}); 
</script> 
} 
+0

У вас есть ошибки в консоли браузера? –

+0

Это будет проблема оформления заказа скриптов. По вашему мнению, используйте '@section scripts {your script here}'. Убедитесь, что '@RegisterSection (« scripts », true)' у вас есть в '_Layout.cshtml' в конце перед закрытием тега body –

+0

@StephenMuecke, привет снова. Я чувствую, что ты так много мне помогаешь - мог бы просто написать все это для меня! : P Я не вижу ошибок в консоли, поэтому я немного смущен. – chickenricekid

ответ

0

если (выбор === 4) код может быть, есть какие-то проблемы. if (selection == 4) Я думаю, что переменная не является объектом, поэтому вам не нужно использовать '===' В любом случае, возможно, вам следует использовать плагин веб-разработчиков Chrome для отслеживания его поведения.

Смежные вопросы