gpt4 book ai didi

javascript - 单击按钮时防止默认值不随机工作

转载 作者:行者123 更新时间:2023-12-01 00:48:35 24 4
gpt4 key购买 nike

查看一些旧代码,发现 e.preventdefault() 在单击按钮时行为不正确。我不知道我以前怎么没有注意到这一点,但由于某种原因,它只是 Simpy 没有完成它的工作。即使执行了 If 语句,页面仍然会刷新。我是不是错过了什么,我是不是瞎了眼?谁能告诉我这是怎么回事吗?

另外,我想补充一点,它肯定会进入 IF 语句,因为需要取消隐藏的 DIV 确实会显示,但是页面无论如何都会刷新,并且会提交不应该提交的内容。

下面是我的代码:

谢谢。

表格:

    <form class="form-group" method="get" action="#">
<div class="row">
<div class="col-md-12">
<table class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th>Terminal</th>
<th>Command</th>
<th>Command Value</th>
<th> </th>
</tr>
</thead>
<tbody>
<tr>
<td>@Html.DropDownListFor(o => o.TerminalsDDL, Model.TerminalsDDL, new { id = "ddlTerminalID", @class = "form-control align-middle" })</td>
<td onchange="UpdateHelpDescript();">@Html.DropDownListFor(o => o.TerminalCommandLookupsDDL, Model.TerminalCommandLookupsDDL, new { id = "ddlCommandValue", @class = "form-control align-middle" })</td>
<td>@Html.TextBoxFor(o => o.UserEnteredTerminalCommands, new { Class = "form-control align-middle", Id = "cmdValueValue" })</td>
<td> <input id="btnSaveTerminalCommand" type="button" value="Insert" class="btn btn-primary align-middle" /> </td>
</tbody>
</table>
</div>
</div>
</form>

JS:

   $(function () {
$("#btnSaveTerminalCommand").click((e) => {

if ($("#ddlCommandValue").val() == " " || $("#ddlCommandValue").val() == null || $("#ddlCommandValue").val() == 0 || $("#cmdValueValue").val() == " " || $("#cmdValueValue").val() == null) {

//window.alert("Please select a valid command.");
$("#alertPopUp").removeClass("hidden");
e.preventDefault();
e.stopImmediatePropagation();
};

var data = {
TerminalID: $("#ddlTerminalID").val(),
CommandID: $("#ddlCommandValue").val(),
CommandValue: $("#cmdValueValue").val()
};

$.ajax({
url: '@Url.Action("AddTerminalCommand", "TerminalCommand")',
type: "POST",
data: data,
success: function (response) {
console.log("Success");
window.location.href = response.Url;
}
});
});
});

最佳答案

只有当条件为真时,您才阻止默认行为,但实际上您希望始终阻止默认行为,因为您正在使用ajax

 $("#btnSaveTerminalCommand").click((e) => {
e.preventDefault();
if(....)

在条件中添加一个return以防止ajax使用无效数据执行

另请注意,$(selector).val() 将返回字符串,而不是 null

关于javascript - 单击按钮时防止默认值不随机工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57171201/

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