首先,对于任何发现此帖子的人都微不足道的事情,我感到抱歉,但是我现在乍一看是发表问题。
我正在开发一个ASP.NET MVC 6应用程序,该应用程序可以在Chrome和Edge中完美运行,但是最近,我得知它还需要能够在IE11上运行。
我的问题是何时提交表单。
$("#js-form").on("submit", function (e) {
document.getElementById("DefinitionID-error").style.visibility = "hidden";
document.getElementById("DefinitionID-error").textContent = "<some text>";
document.getElementById("DefinitionID-error").style.visibility = "visible";
}
该代码似乎在IE11调试器中执行,没有任何错误消息,但是在屏幕上,#DefinitionID-error中保存的原始文本没有更改。
我正在使用的IE11版本是Windows 10附带的超级特殊版本。
我尝试过的其他代码包括:
$("#js-form").on("submit", function (e) {
$("#DefinitionID-error").hide();
$("#DefinitionID-error").text("<some text>");
$("#DefinitionID-error").show();
}
$("#js-form").on("submit", function (e) {
$("#DefinitionID-error").html("<span id='DefinitionID-error'>Some text</span>");
}
$("#js-form").on("submit", function (e) {
document.querySelector("#DefinitionID-error").textContent = "<some text>";
}
$("#js-form").on("submit", function (e) {
document.querySelector("#DefinitionID-error").innerHTML = "<span id='DefinitionID-error'>some text</span>";
}
所有这些功能都可以在Chrome中正常运行,并且足够有趣,而在IE11中则不能。
新示例也不起作用
$("#js-form").on("submit", function (e) {
$("#DefinitionID-error").hide();
$("#DefinitionID-error").text("Some text");
$("#DefinitionID-error").show();
}
更新
如果我使用jQuery代码或javascript代码并在IE11的调试器中运行它。它可以工作,所以可能与提交有关。
答案 0 :(得分:0)
我在Windows 10,Internet Explorer 11上使用以下代码进行了测试。在IE 11上运行正常。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#clk").click(function(){
$("#js-form").submit();
console.log(222);
});
$("#js-form").on("submit", function (e) {
console.log("start");
$("#DefinitionID-error").hide();
$("#DefinitionID-error").val("Some text");
$("#DefinitionID-error").show();
alert("Form submitted");
});
});
</script>
</head>
<body>
<button id="clk">Click me to submit form</button>
<form id="js-form">
First name:<br>
<input type="text" id="DefinitionID-error" name="DefinitionID-error" value="Mickey">
<br>
Last name:<br>
<input type="text" name="lastname" value="Mouse">
<br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
IE 11中的输出:
答案 1 :(得分:0)
谢谢大家的评论,感谢Deepak的代码解决方案。实际上,通过更多的测试,尽管我还没有确切发现问题所在,但是我现在意识到了与select2库有关的一些验证问题。
发生的情况是,当从我上面的代码运行提交代码时,select2库以某种方式用尽了顺序,导致提交发生了两次。第一个实际提交确实设置了正确的错误消息,但是第二个是正式形式的提交,并且该错误消息将恢复为系统默认消息,因此,出于所有强烈的目的,它看起来什么也没有发生。
这个故事的寓意,我猜不要再使用select2。