Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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 当字符到达表单中的特定数字时自动提交isn';行不通_Javascript_Html_Forms - Fatal编程技术网

Javascript 当字符到达表单中的特定数字时自动提交isn';行不通

Javascript 当字符到达表单中的特定数字时自动提交isn';行不通,javascript,html,forms,Javascript,Html,Forms,这段代码可以工作,但当我复制并粘贴到其中时,它不会提交 <script src="jquery-3.2.1.min.js"></script> <form id="Form" action="pro_add_invoice.cfm" method="post"> <input id="here"name="htno" type="text" value="" />&nbsp; <input id="subHere"

这段代码可以工作,但当我复制并粘贴到其中时,它不会提交

<script src="jquery-3.2.1.min.js"></script>

<form id="Form" action="pro_add_invoice.cfm" method="post">
    <input id="here"name="htno" type="text" value="" />&nbsp;
    <input id="subHere" type="submit" value="Submit"  />
</form>

<script>
    $('#here').keyup(function(){
        if(this.value.length ==10){
          $('#Form').submit();
        }
    });
</script>

$('#here').keyup(函数(){
如果(this.value.length==10){
$('表格').submit();
}
});

我假设您只想在输入十个字符后提交表单。您可以改为使用
$().submit()
,并传入表单的id

<form id="Form" action="sell.cfm" method="post">
    <input id="here"name="htno" type="text" value="" />&nbsp;
    <input id="subHere" type="submit" value="Submit"  />
</form>

<script>
    //$('#here').keyup(function(){
    //    if(this.value.length ==10){
    //      $('#Form').submit();
    //    }
    //});

    var input = document.querySelector('#here');
    input.addEventListener('keyup', checkLength);
    function checkLength(e){
        if(e.target.value.length===10){
            document.forms["Form"].submit();
        }
    }

</script>

//$('#here').keyup(函数(){
//如果(this.value.length==10){
//$('表格').submit();
//    }
//});
var input=document.querySelector('#here');
input.addEventListener('keyup',checkLength);
函数校验长度(e){
如果(例如,target.value.length==10){
document.forms[“Form”].submit();
}
}

如果要提交无法使用的表单,请单击事件处理程序。这只适用于点击事件。您需要调用表单元素的submit方法来提交表单

<form id="Form" action="sell.cfm" method="post">
    <input id="here"name="htno" type="text" value="" />&nbsp;
    <input id="subHere" type="submit" value="Submit"  />
</form>

<script>
    //$('#here').keyup(function(){
    //    if(this.value.length ==10){
    //      $('#Form').submit();
    //    }
    //});

    var input = document.querySelector('#here');
    input.addEventListener('keyup', checkLength);
    function checkLength(e){
        if(e.target.value.length===10){
            document.forms["Form"].submit();
        }
    }

</script>
更改If语句以执行以下操作:

香草JS:

document.forms.Form.submit();
或 JQuery:

所以


$('#here').keyup(函数(){
如果(this.value.length==10){
$('表格').submit();
}
});

我认为这里的问题是
上下文不属于
#此处
,匿名函数中的范围(可能)属于
窗口


我还没有尝试过,但也许这可以解决问题,尝试将
更改为
(“#此处”)

在用户键入10位数/字符后是否要单击?@quirimmo我只想提交表单,即转到处理页面。但什么时候?在输入中#这里有一个包含10个字符的字符串?并请更改
$('#subHere')。单击()
$('#表单')。提交()。当您在文本字段中键入10个字符的单词时,将发生提交?输入这个“abcabca”,它应该提交您是否加载了jQuery???@Quirimo,我已经更改了,但是没有。我测试过了,但不工作。它在我的浏览器中工作得很好。请记住,您必须预先加载jQuery。谢谢。最后一项声明起了作用。我没有加载jquery文件。酷。我刚刚编辑了我的回复,以展示如何在vanilla javascript中实现这一点。我尝试在字段中复制和粘贴字符,但除非我键入字符,否则它不会加载。正确,这是因为您使用的是
keyup
函数。它仅在您释放键盘键时监听。您是否尝试并验证
超出范围?如果您包含,请在此处输入。注意:我没有验证它的原因是因为我没有使用JQuery,jsfidle中的测试没有使用JQuery,但它只是证明
这个
上下文不属于
#这里
<script>
    $('#here').keyup(function(){
    if(this.value.length ==10){
      $('#Form').submit();
    }
});
</script>