У меня возникают проблемы с переменными в javascript и asp.net mvc project.Проблема с переменными javascript в asp.net mvc
Я создаю приложение, в котором пользователь имеет возможность отображать страницу в полноэкранном формате.
Когда пользователь хочет отобразить страницу в полноэкранном формате и нажать клавишу отправки, они должны получить предупреждение перед отправкой страницы.
У меня возникли проблемы с javascript, который обрабатывает условие, если пользователь должен получить предупреждение или нет. Следующий код иллюстрирует проблему:
Javascript:
<script type="text/javascript">
var $full = false; //initiates the full variable
$(document).ready(function() {
$("#TemplateID").change(function() { //when selected index of dropdown is changed
var selectedIndex = $("select option:selected").first().text(); //the selected index
$.get('@Url.Action("getIfFullscreen", "Messages")', //calls an ASP.net method to determine if selected index should be displayed as fullscreen
{ id: selectedIndex }, function (data) {
$full = data; //sets the variable full to return value
Debug.writeln("onchange:" + $full) //displays as expected
});
});
});
$(document).ready(function() {
$('[data-confirm]').click(function (e) {
Debug.writeln("onclick:" + $full); //displays as expected
if ($full == true){ //always takes the value from when the variable full was initiated
if (!confirm($(this).attr("data-confirm"))) {
e.preventDefault();
}
}
});
});
</script>
HTML:
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" data-confirm="Are you sure?" value="Skicka" class="btn btn-default" />
</div>
</div>
Похоже переменной полной изменяется (в первой функции) от внешнего вида вывод debug, но оператор if всегда интерпретирует его, поскольку он был сначала инициирован.
Я совершенно новый для javascript, и любая помощь очень ценится.
Что такое значения, которое вы видите в '$ full'? Вы устанавливаете его для boolean true или строки «true»? – Shyju
Я устанавливаю его с логическим значением true/false из части asp.net. Я думаю, вы указали мне в правильном направлении. Я заменил полную переменную на использование целых чисел, и теперь она работает, когда я использую 0 и 1 вместо true и false. Большое спасибо! – karra
Да. Я добавил ответ, объясняющий, почему это может быть неудачным. – Shyju