Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Textarea没有聚焦,而是提交_Javascript_Html_Forms_Focus_Textarea - Fatal编程技术网

Javascript Textarea没有聚焦,而是提交

Javascript 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

我有一个文本区域,它捕捉字符计数的关键短语。我还有一个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();
        }
之后,问题来了。文档不会检查我的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();​