我有一个textarea,它可以捕捉到角色的关键词。计数。我也有一个javascript代码,如果textarea在字段中没有输入任何字符或至少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
上。所以,textarea和表单工作正常,没问题。问题是,在提交表单期间,它不会专注于文本区域(如果textarea少于20个字符)。所以,我添加了一行代码:
document.getElementById("staf_address").focus();
之后,出现了问题。该文档不会检查我的javascript,而是提交表单,尽管textarea只有1个字符。怎么解决这个?
只需要一个普通的javascript。
答案 0 :(得分:1)
当我将你的代码粘贴到JS Fiddle时,我发现在focus();
之后有一个奇怪的字符
删除它似乎可以解决问题。
preventDefault()是一个事件方法,因此只有在事件对象传递给函数时才能使用它。例如:https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
答案 1 :(得分:0)
当您按下按钮时,表单已提交。您需要使用preventDefault()
阻止此操作,这将停止提交,允许您在正确提交之前手动提交之前执行各种功能。
请注意,表单标记内的button
默认为提交按钮!