Javascript 函数不向 CSHTML 返回值
Javascript Function Not Returning Value to CSHTML
我有一个奇怪的问题。我的 javascript 函数似乎工作正常,当我 alert("1"+res)
它给了我想要的结果,但我试图用布尔值 returns 设置一个复选框,但它不起作用。我一定是遗漏了一些愚蠢的东西,首先是我的代码 javascript 函数:
function GetDisplayImages() {
if (localStorage.DisplayImages) {
var name = "DisplayImages=";
var ca = document.cookie.split(';');
for (var i = 0, len = ca.length; i < len; i++) {
var c = ca[i].trim();
if (c.indexOf(name) == 0) {
var res = c.substring(name.length, c.length);
// resetting, just in case local storage not in sync.
self.SetDisplayImages(res);
if (self.Debug) {
toastr.info(res, "Returning Display Images setting from Cookie", { timeOut: 0, extendedTimeOut: 0 });
}
alert("1"+res);
return res;
}
}
}
}
如前所述,alert("1"+res)
显示所需的值。我似乎无法从调用该函数的 .cshtml 文件中获取该值。这是那里的代码:
chk.onload = function (e) {
alert("2"+Library.settings.GetDisplayImages());
this.value = Library.settings.GetDisplayImages();
}
alert(Library.settings.GetDisplayImages());
甚至没有弹出,但我知道正在调用该函数,因为 javascript 函数中的警报确实出现了。请帮助我,这样我就可以停止用头撞桌子了! :)
实际上有 2 个错误,它们是:
这是我的整个脚本部分:
@section scripts{
<script type="text/javascript">
$(document).ready(function () {
chk = document.getElementById("chkDisplayImages");
chk.onload = function (e) {
alert(Library.settings.GetDisplayImages());
this.value = Library.settings.GetDisplayImages();
}
chk.onchange = function (e) {
Library.settings.SetDisplayImages(this.checked);
}
});
</script>
}
SetDisplayImages()
出于某种原因完美运行。
似乎有 2 个问题,一个是我的 onload 没有触发,另一个是返回的字符串不是布尔值。这是我必须做的才能让它工作:
<script type="text/javascript">
chk = document.getElementById("chkDisplayImages");
chk.onchange = function (e) {
Library.settings.SetDisplayImages(this.checked);
}
window.onload(setCheckbox());
function setCheckbox()
{
if (Library.settings.GetDisplayImages()=="true")
chk.checked = true;
else
chk.checked = false;
}
</script>
这不是最干净的方法,但它似乎是唯一可行的方法,我需要继续。
我有一个奇怪的问题。我的 javascript 函数似乎工作正常,当我 alert("1"+res)
它给了我想要的结果,但我试图用布尔值 returns 设置一个复选框,但它不起作用。我一定是遗漏了一些愚蠢的东西,首先是我的代码 javascript 函数:
function GetDisplayImages() {
if (localStorage.DisplayImages) {
var name = "DisplayImages=";
var ca = document.cookie.split(';');
for (var i = 0, len = ca.length; i < len; i++) {
var c = ca[i].trim();
if (c.indexOf(name) == 0) {
var res = c.substring(name.length, c.length);
// resetting, just in case local storage not in sync.
self.SetDisplayImages(res);
if (self.Debug) {
toastr.info(res, "Returning Display Images setting from Cookie", { timeOut: 0, extendedTimeOut: 0 });
}
alert("1"+res);
return res;
}
}
}
}
如前所述,alert("1"+res)
显示所需的值。我似乎无法从调用该函数的 .cshtml 文件中获取该值。这是那里的代码:
chk.onload = function (e) {
alert("2"+Library.settings.GetDisplayImages());
this.value = Library.settings.GetDisplayImages();
}
alert(Library.settings.GetDisplayImages());
甚至没有弹出,但我知道正在调用该函数,因为 javascript 函数中的警报确实出现了。请帮助我,这样我就可以停止用头撞桌子了! :)
实际上有 2 个错误,它们是:
@section scripts{
<script type="text/javascript">
$(document).ready(function () {
chk = document.getElementById("chkDisplayImages");
chk.onload = function (e) {
alert(Library.settings.GetDisplayImages());
this.value = Library.settings.GetDisplayImages();
}
chk.onchange = function (e) {
Library.settings.SetDisplayImages(this.checked);
}
});
</script>
}
SetDisplayImages()
出于某种原因完美运行。
似乎有 2 个问题,一个是我的 onload 没有触发,另一个是返回的字符串不是布尔值。这是我必须做的才能让它工作:
<script type="text/javascript">
chk = document.getElementById("chkDisplayImages");
chk.onchange = function (e) {
Library.settings.SetDisplayImages(this.checked);
}
window.onload(setCheckbox());
function setCheckbox()
{
if (Library.settings.GetDisplayImages()=="true")
chk.checked = true;
else
chk.checked = false;
}
</script>
这不是最干净的方法,但它似乎是唯一可行的方法,我需要继续。