gpt4 book ai didi

javascript - 在 MVC 中维护页面加载上复选框的状态

转载 作者:行者123 更新时间:2023-11-30 19:25:23 25 4
gpt4 key购买 nike

我的问题与页面加载有关。我有以下代码:

Controller :

public ActionResult Index()
{
BD.isEmailON_OFF= db.Email_ON_OFF_T.Select(x=>x.isEmailON_OFF).FirstOrDefault().GetValueOrDefault();
}

[HttpPost]
public ActionResult CheckEmail(string checkemails)
{

//calling Stored Procedure

if (!string.IsNullOrWhiteSpace(checkemails)|| checkemails=="true" || checkemails=="false")
{
var checkemails1 = new SqlParameter("checkemails", checkemails);
db.Database
.ExecuteSqlCommand("EXEC Sp_Email_on_off @checkemails", checkemails1);
}


return new JsonResult { };
}

我有表IS_Email_on_OFF_T:

我将 isemailonoff 列插入为 0

功能:

我已打开电子邮件按钮和复选框。

打开电子邮件 -----> 变为关闭按钮并选中复选框。

关闭按钮----> 变为打开按钮和未选中的复选框。

到这里为止都正常工作。

打开电子邮件 -----> 变为关闭按钮并选中复选框。

page load(加载页面)

clicking on turn off button and not changing to turn on the button(1st attempt)(ISSUE)

点击关闭按钮(第 2 个)它会改变。

我试过的是:

观点:

@{
if (Model.isEmailON_OFF == 0)
{
<input type="button" value="Turn Email on" class="btn btn-success" id="btnturnemailonoff" />
<input type="checkbox" id="Chkemailonoff" style="float:right;" />
}
else
{
<input type="button" value="Turn Email off" class="btn btn-success" id="btnturnemailonoff" />
<input type="checkbox" id="Chkemailonoff" style="float:right;" checked/>
}
}

按钮点击时的 AJAX 调用:

<script type="text/javascript">



$(document).ready(function () {
$('#btnturnemailonoff').on('click', function () {


var checked = !$(this).data('checked');
var message = checked ? 'Turn Email ON' : 'Turn Email OFF';
if (confirm("Do you want to " + message + "? ")) {



$("#Chkemailonoff").prop('checked', checked);
$(this).val(checked ? 'Turn Email Off' : 'Turn Email on')
$(this).data('checked', checked);



debugger;
var url = '@Url.Action("CheckEmail", "BillingDetails")';
$.ajax({
url: url,
type: "POST",
data: { checkemails: checked },
dataType: "json",
// traditional: true,
success: function () {
alert("ajax request to server succeed");
}
});
}//end of if

});
});





</script>

SP:

ALTER procedure [dbo].[Sp_Email_on_off]
@checkemails varchar(10)
As
Begin
if(@checkemails='false')
Update Email_ON_OFF_T set isEmailON_OFF=0
else
Update Email_ON_OFF_T set isEmailON_OFF=1

End

最佳答案

我对 AJAX 调用按钮点击进行了更改,它对我有用。

$(document).ready(function () {
$('#btnturnemailonoff').on('click', function () {
debugger;
var checked = $("#Chkemailonoff").prop('checked');
var message = checked ? 'Turn Email On' : 'Turn Email Off';
if (confirm("Do you want to " + message + "? ")) {
$("#Chkemailonoff").prop('checked', !checked);
$(this).val(message)
var url = '@Url.Action("CheckEmail", "BillingDetails")';
$.ajax({
url: url,
type: "POST",
data: { checkemails: !checked },
dataType: "json",
success: function () {
//alert("ajax request to server succeed");
}
});
}




});
});

关于javascript - 在 MVC 中维护页面加载上复选框的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56968888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com