![](/img/trans.png)
[英]Passing ViewModel back from controller to Javascript Function MVC
[英]Passing values from ViewModel to JavaScript
我正在制作MVC 5 Web應用程序,並且希望將ViewModel的值傳遞給JavaScript中的函數
目的是當用戶選擇選項“否”時隱藏標簽/分隔,並在用戶將選項更改回“是”時使其重新出現。
這是我到目前為止的內容:
視圖模型:
public enum BasicAnswer
{
[Display(Name= "Yes")]
Yes,
[Display(Name= "No")]
No
}
public BasicAnswer userDiscomfortResponse { get; set; }
視圖:
<div id="UserDiscomfortAnswerLabel">
<label id="somelabel">Did you have any discomfort with an exercise?</label>
<div class="Answer1" onclick=feedback data-id='@Model.userDiscomfortResponse'>
@Html.EnumDropDownListFor(m => m.userDiscomfortResponse, new { @class = "form-control" })
</div>
</div>
<div class="Question2">
<label id="UserDiscomfortExerciseLabel">What exercise was the issue?</label>
<div class="Answer2">
@Html.DropDownListFor(m => m.discomfortExercise, Model.UsersSelectedExcerises, new { @class = "form-control" })
</div>
</div>
JavaScript的:
function feedback() {
var feedback = $(this).attr('data-id');
if (feedback == "Yes") {
document.getElementById("UserDiscomfortExerciseLabel").style.display = "block"
}
else {
document.getElementById("UserDiscomfortExerciseLabel").style.display = "none"
}
}
我遇到的問題是var feedback = $(this).attr('data-id')結果未定義,因此標簽在單擊時隱藏,但不再顯示。
有什么我想念的嗎?
先感謝您。
好的,嘗試刪除div上的onclick並添加:
$(document).ready(function()
{
function feedback() {
var feedback = $('#userDiscomfortResponse').val()
if (feedback == "Yes") {
document.getElementById("UserDiscomfortExerciseLabel").style.display = "block"
}
else {
document.getElementById("UserDiscomfortExerciseLabel").style.display = "none"
}
}
$("#userDiscomfortResponse").change(feedback);
feedback();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.