gpt4 book ai didi

javascript - Textarea 没有聚焦而是提交

转载 作者:行者123 更新时间:2023-12-03 11:45:53 26 4
gpt4 key购买 nike

我有一个文本区域,可以捕获字符数的关键短语。我的 JavaScript 代码中也有一个 JavaScript 代码,如果文本区域中根本没有输入字符或至少有 20 个字符,则返回 false。这是我的脚本:

Javascript

        function CheckLength() {
var msg_area = document.getElementById("error2");
msg_area.innerHTML = "";
if (document.getElementById("staf_address").value.length < 20) {
document.getElementById("error1").className = "par control-group error";
document.getElementById("staf_address").focus();​
msg_area.innerHTML = "YOU DID NOT ENTER ENOUGH INFORMATION";
return false;
} else document.getElementById("addstaf").submit();
}

HTML

<form class="stdform stdform2" method="post" id="addstaf" action="index.php?site=addstafrev" onsubmit="return CheckLength()" />
<div id="error1">
<label for="staf_address">Address</label>
<span class="field">
<textarea cols="80" rows="5" name="staf_address" id="staf_address" class="span5 textarea2" maxlength="120" required /></textarea>
<span class="help-inline" id="error2"></span>
</span>
</div><!--par-->
<button type="submit" class="btn btn-primary">Next</button>
</form>

一开始完全没有问题。如果id=staf_address中的字符少于20个字符,则不会提交textarea。该错误将显示在 id=error2 上。因此,文本区域和表单工作正常,没有问题。问题是,在提交表单期间它并不关注文本区域(如果文本区域少于 20 个字符)。所以,我添加一行代码,就是这一行:

document.getElementById("staf_address").focus();​

之后,问题来了。该文档不会检查我的 javascript,而是提交表单,即使文本区域只有 1 个字符。怎么解决这个问题呢?

只需要一个简单的 JavaScript。

最佳答案

当我将你的代码粘贴到 JS Fiddle 中时,我注意到 focus(); 之后有一个奇怪的字符

enter image description here

删除它似乎可以解决问题。

preventDefault() 是一个事件方法,因此只有在将事件对象传递到函数中时才能使用它。例如:https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault

关于javascript - Textarea 没有聚焦而是提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26046398/

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