Javascript Textarea没有聚焦,而是提交
我有一个文本区域,它捕捉字符计数的关键短语。我还有一个javascript代码,如果textarea字段中根本没有键入字符或至少有20个字符,则返回false。这是我的脚本: JavascriptJavascript Textarea没有聚焦,而是提交,javascript,html,forms,focus,textarea,Javascript,Html,Forms,Focus,Textarea,我有一个文本区域,它捕捉字符计数的关键短语。我还有一个javascript代码,如果textarea字段中根本没有键入字符或至少有20个字符,则返回false。这是我的脚本: Javascript function CheckLength() { var msg_area = document.getElementById("error2"); msg_area.innerHTML = ""; if (doc
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();
}
之后,问题来了。文档不会检查我的javascript,而是提交表单,即使文本区域只有1个字符。如何解决这个问题
只需要一个简单的javascript。当您按下按钮时,您的表单将被提交。您需要使用
preventDefault()
来防止这种情况,它将停止提交,允许您在正确提交后手动提交之前执行功能等
记住,表单标签中的
按钮默认为提交按钮 当我将您的代码粘贴到JS Fiddle中时,我注意到focus()后面有一个奇怪的字符
删除它似乎可以解决问题
preventDefault()是一个事件方法,因此只有在将事件对象传递到函数中时才能使用它。例如:检查控制台中发现的任何js错误,我可以在控制台中看到一些错误。pleasecheck@AbdullaChozhimadathil什么控制台?我没有任何“控制台”来检查错误。据我所知,代码是好的。你能告诉我错误吗?试试这个@AbdullaChozhimadathil你在代码中到底改变了什么?我看不出和我的有什么不同。你能告诉我吗?但是,如果以前没有preventDefault()
,我的表格就可以了。它根本没有提交,错误显示我没有足够的字符。就在我添加焦点行时,脚本无法运行。哇,真见鬼?无论如何,这真的解决了我的问题!也许我得到这个奇怪的字符是因为我从其他代码中复制。
<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>
document.getElementById("staf_address").focus();