【发布时间】:2019-01-11 12:22:50
【问题描述】:
我需要在我的 index.cshtml 中运行一个 javascript 函数来清除一些可能不需要的字符和额外空格的文本框。
该网站在 .NET CORE MVC 上运行。
按键代码:
<button onclick="executeValidationTest()" class="btn btn-success ladda-button ladda-button-infinite" data-style="expand-right" type="submit"><i class="fa fa-search"></i> Recherche</button>
问题是......搜索开始时没有先运行我的清理脚本。 结果,我的搜索结果中包含一些我不希望在默认搜索中出现的字符。
我尝试使用另一个按钮,效果很好,但用户讨厌点击多个按钮。
我注意到有一个包含脚本的代码:
@Html.AddResource(PageResourceType.Javascript, @<script>SomeScriptAlreadyInTheFile</script<)
我试图把我的代码放在这里,但它也不起作用。
我的脚本:
function executerTestDeValidation() {
console.log("Script call ok");
if (document.getElementById("ISBN").value != "") {
var string = document.getElementById("ISBN").value;
// OUTPUT
console.log("Before Clean: " + string);
// ___________________________________
// START CLEAN - Use string variable
// Clear all non numbers
string = string.replace(/\D/g, "");
console.log("After Clean: " + string);
// Check char total numbers
var n = string.length;
console.log("Lenght: " + n);
// Check if full string is multiple of 13 - rest zero
var rest = n / 13;
if (n % 13 != 0) {
// IF DIVISION BY ZERO = ERROR
// console.log("Lenght: " + n + " is NOK");
document.getElementById("txtBox").value = "ERROR";
} else {
// IF DIVISION BY ZERO = GOOD
// console.log("Lenght: " + n + " is Good (Divisible par 13 et reste 0)");
// Add spaces every 13 Chars
var chuncks = string.match(/.{1,13}/g);
var string = chuncks.join(" ");
// console.log("After space split: " + string);
document.getElementById("ISBN").value = string;
// Check for last digit verification number on each ISBN number
// ...
}
}
}
我应该把我的脚本调用放在哪里,以便在执行默认搜索之前按下按钮时运行我的脚本?
最好的问候 瑞
【问题讨论】:
-
显示 javascript
-
利用section,放在script标签下
-
我已经添加了完整的脚本,不确定是否有必要,我只需要知道在默认搜索之前,按下按钮时,我应该在哪里调用脚本以运行。跨度>
-
这部分是否会让我的脚本在我的按钮中的默认搜索功能之前运行?我的按钮没有代码,所以我怀疑该呼叫是由另一个“侦听器”发出的,该侦听器收集所有文本字段并将搜索午餐到数据库中。我需要找到那个电话并将我的电话放在第一位,并确保我的电话在另一个电话之前终止。
-
假设这个 HTML 在
<form>内,那么问题不在于你把代码放在哪里,而是你的按钮是一个type="submit",这将自动提交表单而不管任何 JavaScript按钮上设置的事件 - 除非您使用 JavaScript 来抑制此行为,然后只有在您认为它有效时才使用脚本手动提交表单。谷歌“JS防止默认”以了解如何。或者你可以在按钮上设置type="button"(如果验证通过,仍然使用JS提交表单)使其默认没有表单提交行为。
标签: javascript .net asp.net-mvc