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="" /> <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="" />
<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="" />
<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="" />
<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>